IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Déploiement/Installation Python Discussion :

Plusieurs fichiers => un binaire ou script [Python 2.X]


Sujet :

Déploiement/Installation Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut Plusieurs fichiers => un binaire ou script
    Salut à tous,

    je précise tout de suite que je suis un grand débutant de python et que mon expérience avec se limite à la demi journée de dév que j'ai fait.

    En gros j'ai fait un petit script utilitaire pour un plus gros projet (c++) qui permet de réaliser certaines action nécessaire à l'initialisation de mon projet c++.
    Comme j'ai beaucoup de mal à me faire à la syntaxe python , j'ai découpé le script en plein de fichiers pour que ca reste lisible pour moi :

    - main.py
    - json_reader.py : les fonctions utiles à la lecture du json
    - httpcli.py : les fonctions de téléchargement
    - util.py : les fonctions "utilitaires"
    - etc ...

    L'ensemble fonctionne comme attendu.

    Est il possible d'obtenir un seul script ou binaire à partir de tous mes fichiers que je pourrais ensuite venir déposer à la racine de mon projet c++ ?

    je n'aurais alors plus qu'à exécuter le binaire ou le script pour qu'il fasse son travail. Le but étant de ne pas "polluer" le projet c++ qui va utiliser ce script avec plein de fichiers python.
    Je précise que c'est multi plateforme , donc obtenir un .exe n'est pas une solution pour moi , mais avoir python installé sur les machine qui executeront ce script est tout à fait possible.

    Merci pour vos lumières
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par grunk Voir le message
    Est il possible d'obtenir un seul script ou binaire à partir de tous mes fichiers que je pourrais ensuite venir déposer à la racine de mon projet c++.
    Vous pouvez tout poser dans un s/répertoire puis l'activer en passant le nom du chemin relatif ou complet ou en définissant une variable d'environnement qui mâche le boulot. Sinon oui, la taille d'un script n'est pas limitée: vous pouvez tout avoir dans un seul fichier (modulo quelques changements). Il y a aussi la possibilité de "packager" interpréteur Python, bibliothèques et programme dans une sorte d'exécutable via des outils comme cx_Freeze, mais il faudra en générer autant que de plateformes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    En fait quand je parlais de script unique , je me demandais surtout si à partir de tous mes fichiers il était possible d'en générer un seul automatiquement.

    Mon projet python reste claire et facile à faire évoluer
    Mon projet c++ n'embarque qu'un fichier , une sorte de "release" de mon projet python. J'imaginais peut une sorte de fichier bytecode de mon projet.

    Si c'est pas possible autant effectivement intégrer le code python au seins de mon projet c++.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    En fait tu ne dis pas où se trouve le problème de tout écrire dans un seul fichier.

    Qu'est-ce qui t'empêche de le faire ?

    Ce n'est que du copier-coller et tu supprimes les import devenus inutiles bien sur.

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur banc de test
    Inscrit en
    Mai 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur banc de test
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 199
    Par défaut
    Bonjour,

    Si votre but est de regrouper dans un seul fichier tout en conservant le projet en plusieurs fichiers vous pouvez partir sur le principe du wheel utilisé pour créer des packages.

    PEP 427 -- The Wheel Binary Package

    Qui utilise un conteneur standard Zip pour y contenir les fichiers et l’arborescence classique d'un package python.

    Il existe je suppose un module dédié pour faciliter la mise en conteneur.

    Ou très simplement en créant un fichier __main__.py qui sera le code principal d'exécution de vos fichiers.

    Soit en le zipant simplement tout le dossier, soit en python :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import shutil
    shutil.make_archive(r"chemin_package", 'zip', r"chemin_enregistrement_du_fichier_zip")
    Ensuite pour l'appeler depuis la console très simplement comme un fichier python : python test.zip

    Exemple ci-joint : test.zip


    __main__.py

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import test1, test2, test3
     
    test1.test()
    test2.test()
    test3.test()
    test1.py, test2.py, test3.py

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def test():
        print(__name__)

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    En fait tu ne dis pas où se trouve le problème de tout écrire dans un seul fichier.

    Qu'est-ce qui t'empêche de le faire ?

    Ce n'est que du copier-coller et tu supprimes les import devenus inutiles bien sur.
    Rien ne m’empêche de le faire si ce n'est ma capacité à lire du python. Comme je suis habitué aux syntaxes plus "classique" je trouve le python fouilli , du coup j'essai de limiter la quantité de code par fichier au maximum.

    @YCL-1 , ca m'a l'air pas mal du tout comme solution , je regarde ça
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lancer script sur plusieurs fichiers
    Par ricololo dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 11/03/2009, 23h02
  2. Réponses: 1
    Dernier message: 27/11/2008, 11h41
  3. un script sur plusieurs fichiers "functions.m"
    Par prologO dans le forum MATLAB
    Réponses: 12
    Dernier message: 18/12/2007, 17h37
  4. Script shell pour modifier plusieurs fichiers
    Par julio_097 dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 03/10/2006, 12h41
  5. 1 Script, plusieurs fichiers ?
    Par Invité(e) dans le forum Langage
    Réponses: 3
    Dernier message: 01/07/2005, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo