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 :

Distibution d'un programme PYTHON


Sujet :

Déploiement/Installation Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Distibution d'un programme PYTHON
    Bonjour à tous,

    Pour commencer, je viens de finir la première partie du tuto de G. SWINNEN, et l'une de mes premières constatations est la suivante:
    POURQUOI AI-JE COMMENCE A APPRENDRE LE VB ET NON PAS PYTHON. QUEL C...

    Ce langage est vraiment super intéressant et en lisant le tuto, j'ai réussi à faire des comparaisons avec VB et je pense qu'il me sera possible de plus facilement gérer certains problèmes que j'avais pus rencontrer.

    Cela dit une question trotte encore dans ma petite tête.
    Si j'ai bien compris il est plus simple d'avoir python d'installer sur le poste où l'on souhaite utiliser le programme, ceci implique donc qu'il y a possibilité de modifier le code source de ce dernier. Loin de moi l'idée de vouloir garder ce code secret, mais connaissant les premiers utilisateurs de mon futur programme je suis persuadé que celui-ci fonctionnera bien qu'un temps.

    Etait-il alors possible de le rendre "invisible" à un non initié ou inmodifiable.

    Si ceci n'est pas faisable de manière simple, il faut alors créer un .exe et je suppose importer des bibliothèques. Pour ceux qui ont déjà fait ainsi ceci reste t-il abordable ou y-a-t-il encore pas mal de temps d'apprentissage?

    D'avance merci pour l'aide et le temps que vous m'accorderez.

    Bonne continuation à tous.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Charles-Elie Voir le message
    Loin de moi l'idée de vouloir garder ce code secret, mais connaissant les premiers utilisateurs de mon futur programme je suis persuadé que celui-ci fonctionnera bien qu'un temps.

    Etait-il alors possible de le rendre "invisible" à un non initié ou inmodifiable.
    Je ne sais pas quel est le niveau de confidentialité que vous voulez, mais si c'est juste décourager d'éventuels développeurs en herbe ou petits curieux, distribuer la version compilé du script Python pourrai être suffisant.

    Quand un fichier python est utilisé comme module (appel import dans un autre fichier exécuté), le résultat de la compilation de ce module est écrit dans un fichier ayant le même nom que le module mais avec l'extension .pyc

    Ce fichier là est parfaitement utilisable par l'interpréteur python et on peut très bien lancé
    python mon_script.pyc

    Attention cela n'a rien d'une protection commercial ou autre, et c’est a la base de l’optimisation, de plus le fichier pyc contient en partie, du texte en claire, mais je pense qu’il sera suffisamment pénible a déchiffrer pour pourvoir en décourager plusieurs.

    Pour plus d'info :
    http://docs.python.org/tut/node8.htm...00000000000000

    Et si vous voulez un exemple de fichier compilé python, vous pouvez regarder dans votre arborescence de projet (vous devez en avoir plusieurs) ou sinon sur le repertoire lib de votre distribution python.

  3. #3
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Ma suggestion est de ne pas faire la police. Distribue ton application en format source, ce qui est très recommendé pour différentes raisons, et si un usager joue dans le code, comme on dit au Québec: c'est son criss de problème.

    N'importe qui peut dévisser le panneau latéral de son ordinateur et jouer dans les pièces. La plupart des gens ne le font pas, car ils n'y connaissent rien, il y a des gens qui savent ce qu'ils font et peuvent utiliser leur connaissances pour arranger des petits problèmes. Mais c'est pas le problème de Dell ou de HP s'ils brisent quelque chose.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par Ozatorenator Voir le message
    Je ne sais pas quel est le niveau de confidentialité que vous voulez, mais si c'est juste décourager d'éventuels développeurs en herbe ou petits curieux, distribuer la version compilé du script Python pourrai être suffisant...

    ....

    Et si vous voulez un exemple de fichier compilé python, vous pouvez regarder dans votre arborescence de projet (vous devez en avoir plusieurs) ou sinon sur le repertoire lib de votre distribution python.

    Effectivement je en pensais pas que l'on pouvait faire ainsi.
    C'est parfait.

    Merci Beaucoup
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  5. #5
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Désolé mais je trouve ça ridicule ...

    cela ne protege pas du tout de "ce dont tu as peur" (quoi que ca puisse etre) car il y a des solutions our recupérer des .py a partir des .pyc donc la "protection" nulle (un amateur ira pas farfouiler les source même si il arrive deja a savoir ou elles se trouvent)
    et en meme temps cela va juste "saouler" les gens qui peuvent apporter quelques chose de concret a ton logiciel...

    bref je pense pas que la raison que tu nous donnes soit valable, tu as ptetre pas osé de nous dire que tu voullais faire du closed source de peur de te faire lancer des pierre lol ... mais il faut savoir qu'il n y a pas que des fanatiques de l'opensource ici et que en tant que propriétaire de ton logiciel c'est tout a fait normal que tu puisse voulloir fermer le code pour en garder la propriété...
    Bref si tel est ta réél motivation, tu devrai regarder du coté des offuscateur... cela ne compile pas le code source mais renome toutes les variable, classe, ... et les rend illisible. C'est beaucoup plus efficace.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par anthyme Voir le message
    Désolé mais je trouve ça ridicule ...

    cela ne protege pas du tout de "ce dont tu as peur" (quoi que ca puisse etre) car il y a des solutions our recupérer des .py a partir des .pyc donc la "protection" nulle (un amateur ira pas farfouiler les source même si il arrive deja a savoir ou elles se trouvent)
    et en meme temps cela va juste "saouler" les gens qui peuvent apporter quelques chose de concret a ton logiciel...

    bref je pense pas que la raison que tu nous donnes soit valable, tu as ptetre pas osé de nous dire que tu voullais faire du closed source de peur de te faire lancer des pierre lol ... mais il faut savoir qu'il n y a pas que des fanatiques de l'opensource ici et que en tant que propriétaire de ton logiciel c'est tout a fait normal que tu puisse voulloir fermer le code pour en garder la propriété...
    Bref si tel est ta réél motivation, tu devrai regarder du coté des offuscateur... cela ne compile pas le code source mais renome toutes les variable, classe, ... et les rend illisible. C'est beaucoup plus efficace.
    A mon tour d'être désolé, mais la méthode que Ozatorenator m'a donné me suffit largement. Bien que j'attendais une réponse comme la tienne, je ne voulais pas trop m'étendre sur mon cas car, premièrement je ne pense pas que cela intéresse les membres du forum et d'autre part car j'étais assez pressé quand j'ai écrit le post.

    Mais comme l'inévitable est arrivé je vais donné une petite explication:
    1°) Le programme que je vais créé est entièrement dédié aux membres de MA société. Il n'a aucun but commercial.
    2°) Ce programme même s'il était diffusé, ne servirait à aucune personne ne faisant pas partie de ma société.
    3°) Il arrive parfois que certains programmes utilisés chez nous et non "open" bug. Comme par hasard c'est toujours sur les mêmes PC...

    L'astuce de Ozatorenator peut facilement empêcher que certains accèdent au code source et le modifie de telle manière que le prog ne fonctionne plus, ce qui impliquerait une nouvelle intervention de ma part sur le PC pour maintenance ===>> Perte de temps.

    Donc voilà...
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  7. #7
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Citation Envoyé par anthyme Voir le message
    (un amateur ira pas farfouiler les source même si il arrive deja a savoir ou elles se trouvent)
    et en meme temps cela va juste "saouler" les gens qui peuvent apporter quelques chose de concret a ton logiciel...
    Cela dépend de l'environnement professionnel. J'ai déjà eu le cas : un type qui connaissait vaguement Python (ou pensait le connaître) et a voulu "améliorer" le script. Il a mis un b*rd*l inimaginable et bien sûr a accusé le script (i.e celui qui l'avait écrit, donc moi) d'avoir provoqué la catastrophe. Que c'était " un langage non sécurisé", "d'amateur", etc. etc. Les rois de la bidouille sévissent hélas partout.

    ==> Pour une "sécurité" supplémentaire tu peux mettre les fichiers .pyc de ton programme dans un répertoire caché donc invisible pur l'utilisateur lambda. dans ce cas, l'utilisateur bidouilleur ne pourra pas nier qu'il a modifié l'attribut du dossier.

    C'est toujours le problème des langages de scripts, tout le monde peut accèder au code et c'est parfois pénible de réinstaller systématiquement les mêmes fichiers.
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  8. #8
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Citation Envoyé par richard Voir le message
    Cela dépend de l'environnement professionnel. J'ai déjà eu le cas : un type qui connaissait vaguement Python (ou pensait le connaître) et a voulu "améliorer" le script. Il a mis un b*rd*l inimaginable et bien sûr a accusé le script (i.e celui qui l'avait écrit, donc moi) d'avoir provoqué la catastrophe. Que c'était " un langage non sécurisé", "d'amateur", etc. etc. Les rois de la bidouille sévissent hélas partout.
    Pour avoir travaillé en tant que technicien avant de devenir programmeur, les utilisateurs qui installaient des logiciels qui causaient des problèmes à leur machine la voyait promptement re-ghosté.

    Si un utilisateur modifie ton programme Python et que ça chie, tu recopies la bonne version et tu le traites d'incompétent.

    Et si tu distribues les .pyc, qu'est-ce qui va empêcher quelqu'un d'utiliser un décompilateur? Aussi bien utiliser un langage qui compile à du code natif.

  9. #9
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Citation Envoyé par GnuVince Voir le message
    1) Et si tu distribues les .pyc, qu'est-ce qui va empêcher quelqu'un d'utiliser un décompilateur?
    2) Aussi bien utiliser un langage qui compile à du code natif.
    1) Il n'y a pas de solution miracle ni parfaite. Souvent, cela suffit pour décourager un bidouilleur maladroit mais pas vindicatif.

    2) C'est ce que je fais parfois. J'utilise Lazarus/Freepascal.
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  10. #10
    Membre éprouvé Avatar de TallyHo
    Homme Profil pro
    Lutin numérique
    Inscrit en
    Février 2006
    Messages
    1 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lutin numérique

    Informations forums :
    Inscription : Février 2006
    Messages : 1 053
    Points : 1 052
    Points
    1 052
    Par défaut
    Désolé, je remonte ce sujet

    Bref si tel est ta réél motivation, tu devrai regarder du coté des offuscateur... cela ne compile pas le code source mais renome toutes les variable, classe, ... et les rend illisible. C'est beaucoup plus efficace.
    Je peux avoir des précisions svp ?

    Moi je le dis clairement, je veux distribuer un script mais protéger mon travail.
    Je veux juste le distribuer sans le faire payer mais ne pas dévoiler les sources.

    Donc si quelqu'un connait un systéme pour "compiler" en exe ou un systéme de gestion de licence (même si le produit sera gratuit) et/ou de protection, merci à lui
    .
    Heureux soient les fêlés car ils laisseront passer la lumière.
    Michel Audiard

  11. #11
    Membre régulier Avatar de Mysti¢
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 116
    Points
    116
    Par défaut
    Py2exe

    Il propose pas mal de fonctionnalites.
    Tu peux par exemple generer un seul fichier exe qui contient a la fois l'interpreteur python et les librairies externes que t'utilises.
    Definir le nom de l'auteur, mettre un commentaire, la version de ton application (informations que verront les utilisateurs en faisant bouton droit -> proprietes).

    Attribuer une icone a ton executable, etc...
    ''' Life is short, use Python '''
    Business En Ligne
    SearchEngineFight

  12. #12
    Membre éprouvé Avatar de TallyHo
    Homme Profil pro
    Lutin numérique
    Inscrit en
    Février 2006
    Messages
    1 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lutin numérique

    Informations forums :
    Inscription : Février 2006
    Messages : 1 053
    Points : 1 052
    Points
    1 052
    Par défaut
    Super !
    Merci
    .
    Heureux soient les fêlés car ils laisseront passer la lumière.
    Michel Audiard

  13. #13
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 302
    Points : 316
    Points
    316
    Par défaut
    Qui dit compilation, dit architecture. Si on compile le programme sur une achitecture PC elle ne fonctionnera pas sur un ancien Mac par exemple, ni sur une Sun.

    Distribuer les .pyc n'est donc pas une bonne idée, SAUF dans le cas actuel (parc informatique homogène dans une société).

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

Discussions similaires

  1. Réponses: 145
    Dernier message: 15/02/2009, 11h51
  2. Faire communiquer deux programmes python
    Par bestdomdom dans le forum Général Python
    Réponses: 5
    Dernier message: 26/10/2006, 09h30
  3. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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