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 :

Application noinstall en python ?


Sujet :

Déploiement/Installation Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 30
    Points
    30
    Par défaut Application noinstall en python ?
    Bonjour,

    Est-il possible de construire une application noinstall en python ? Je pense que vous allez me répondre qu'il est possible de faire un exe depuis python ! Ok, mais alors se pose le problème du multiplateforme et des librairies et framework éventuellement embarques par l'application, je pense en particulier à une application que je voudrais développer avec une GUI sous QT...

    Je vous remercie pour votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Ca serait bien de raconter ce que vous appelez "application noinstall" ou de donner une URL où on en parle, car dit comme çà, c'est un peu fumeux.

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

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec cx_freeze, on peut faire un exe sous Windows, mais aussi un exécutable sous Linux, et probablement aussi pour Mac OS X.

    Mais, bien sûr, on ne fait pas de cross-traitement: l'exécutable pour Windows se fait sous Windows, et celui pour Linux se fait sous Linux parce que les bibliothèques à intégrer sont différentes.

    Dans les différentes méthodes d’utilisation de cx_freeze, j'utilise le setup.py: on peut se débrouiller pour que ce soit le même fichier pour toutes les plateformes.

    Tout ceci est compatible avec PyQt! C'est ce que je fais couramment.

    Si tu optes pour cx_freeze, je peux te donner des détails.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 30
    Points
    30
    Par défaut
    Une application noinstall (sans installation) est une application qui s'execute directement sans nécessiter l'exécution au préalable d'un programme d'installation. That's all... Cela signifie par exemple que le programme peut être lancé directement depuis une clé USB. Pour cela il faut bien sur ne pas être obligé d'installer l'environnement python sur le système d'exploitation, et donc être capable de produire à la compilation un executable compatible avec le système d'exploitation utilisé... D'où la nécessité d'une compilation cross plate-forme...

    Je comprends que cela peut donc se faire avec cx_freeze. Et donc je pourrais utiliser la librairie QT dans mon application python. OK !
    • Est-ce que cela fonctionnerait avec n'importe quelle librairie python utilisée par mon application ?
    • Est-ce que cx_freeze optimise les inclusions pour limiter la taille de l'executable final ?

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par gelinp Voir le message
    être capable de produire à la compilation un executable compatible avec le système d'exploitation utilisé
    Ce n'est pas une compilation, mais plutôt un assemblage: le code Python est toujours exécuté en bytecodes, et l'interpréteur est intégré à l'exécutable sous forme de bibliothèque. C'est un lanceur exécutable (exemple: .exe sous Windows) qui lance l'exécution.

    Citation Envoyé par gelinp Voir le message
    D'où la nécessité d'une compilation cross plate-forme...
    Si le terme cross veut dire "construire un exécutable sur un OS pour un autre OS": c'est non. Revoir mon message précédent.

    Citation Envoyé par gelinp Voir le message
    Est-ce que cela fonctionnerait avec n'importe quelle librairie python utilisée par mon application ?
    Oui, mais ça peut être plus ou moins difficile selon la manière dont les modules sont codés. Dans certains cas, il faut aider un peu cx_freeze pour le traitement.

    Citation Envoyé par gelinp Voir le message
    Est-ce que cx_freeze optimise les inclusions pour limiter la taille de l'executable final ?
    Il ne faut pas trop en demander: ce que fait cx_freeze est compliqué.

    Et le résultat n'est pas un seul fichier mais une arborescence de bibliothèques qui accompagne l'exécutable. Il suffit de recopier cette arborescence sur disque et de lancer l'exécutable. Ça marche aussi sur une clé USB.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par gelinp Voir le message
    Une application noinstall (sans installation) est une application qui s'execute directement sans nécessiter l'exécution au préalable d'un programme d'installation. That's all... Cela signifie par exemple que le programme peut être lancé directement depuis une clé USB.
    On sait faire une application portable sur clé USB.
    Mais si on veux prendre la clé USB et pouvoir lancer l'application sur Windows, Linux, OSX, ... çà devrait être faisable.
    1. prendre un "file system" reconnu sur tous les OS,
    2. installer les binaires et bibliothèques Python et bibliothèques externes dans des répertoires OS dépendant.
    3. installer les scripts de l'application dans des répertoires communs

    Après il faudrait un point d'entrée calculable en fonction de l'OS (bootstrap).

    Ce genre de chose existe mais en mono-OS: Windows, Linux,...
    Je n'ai pas connaissance d'un framework qui permette de construire çà pour plusieurs.

    cx_freeze est une solution un peu différente puisqu'on installe quand même l'application d'une façon ou d'une autre sur la cible. On peut éventuellement l'utiliser pour générer un environnement spécifique à chaque OS.
    1. s'il y a des fichiers "communs", il faut hacker un peu,
    2. la question du bootstrap reste ouverte (çà se fait mais les détails sont des hackeries que je n'ai plus en-tete).


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

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 30
    Points
    30
    Par défaut
    Je comprends donc que le bootstrap lancerait l'exécutable de python compatible avec le système d'exploitation sur lequel la clé USB est montée... Et a partir de là, l'application noinstall pourrait fonctionner avec les ressources accessibles du système d'exploitation... Est-ce que ces ressources sont variables selon les normes de sécurité actives sur le poste, certainement... Est-ce que le système d'exploitation pourrait interdire l'exécution de l'application s'exécutant sur la clé USB ? Je pense que non, en général les admin système bloquent surtout les programmes d'installation ...

    Reste que cette solution demande beaucoup de ressources sur la clé USB pour installer les exécutables pythons, les librairies et framework compatibles pour chaque système...

    Pour mon projet je pense alors peut être plutôt me tourner vers lazarus (Free Pascal Objet) et la compilation cross plateform. Je ne dirais pas que au final l'application sera installée sur le système mais au final je comprends bien qu'il doit s'exécuter avec les ressources du système !

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par gelinp Voir le message
    Pour mon projet je pense alors peut être plutôt me tourner vers lazarus (Free Pascal Objet) et la compilation cross plateform. Je ne dirais pas que au final l'application sera installée sur le système mais au final je comprends bien qu'il doit s'exécuter avec les ressources du système !
    Les ressources du systèmes sont CPU/Mémoire et fichiers utilisateurs (ceux éventuellement créés dans le home directory ou ailleurs).

    Ceci dit "cross-compiler" "pour de vrai" ou faire exécuter des scripts dans des environnements différents c'est un peu la même chose: des répertoires séparés et partagés. La différence sera dans le travail à faire pour construire tout çà... et donc, si vous connaissez mieux un environnement de type Lazarus que Python, c'est peut être plus simple (dans votre cas).

    Mais, je n'ai pas trop compris quel problème vous cherchiez résoudre en diffusant votre application sous cette forme.

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

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 30
    Points
    30
    Par défaut
    L'application que j'envisage de créer pour gérer ma base documentaire me sera utile chez moi (Linux) et au travail (Windows). C'est donc une problématique de nomadisme... Avec Java le nomadisme est plus facilement géré puisque on profite de son installation quasi systématique sur tous les postes. Avec Pyhton c'est plus compliqué... Au travail je dois demander l'autorisation d'installer une nouvelle application, et demander Python si Java est déjà installé... Je profite dejà de quelques applications noinstall et je trouve cela très pratique, alors je me renseignait pour voir si cela était possible avec python. Pouvoir répondre ainsi facilement au problème de nomadisme me semble un challenge intéressant pour python. Notez que le développement d'une application web ne m'intéresse pas trop, je préfère un client lourd, plus rapide et plus réactif, pour des outils de gestion je trouve que c'est plus intéressant.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Si on ne s'occupe que de votre cas particulier (plutôt qu'essayer de répondre au cas général et à n'importe quel OS), vous avez chez vous Linux/Python/des biblio. installés pour tout le monde, votre application et la base de données documentaire qu'il faut bien trimballer sur la clé USB (ou imaginer des mises à jour en différé, mais restons simple).

    Si vous voulez jouer avec depuis Windows, vous pouvez créer un portable Python sur la clé USB et... y poser votre application et la base de données documentaire à côté.

    Une autre piste à étudier en fonction de ce que vous avez sur l'ordi. du bureau est de passer par une machine virtuelle. Vous y installez Linux et tout le reste, et vous démarrez la machine sur l'ordi. du boulot...
    L'avantage est de travailler sur le même environnement et... avoir à installer une seule fois Python et les bibliothèques.

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

  11. #11
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Si c'est au travail que le problème d'installation de Python se pose, et que c'est du Windows, il y a une solution très pratique: un Python portable. J'en connais 2 (portablepython et winpython), et on peut faire exécuter un programme Python avec ça sur une clé USB sans problème. On fait un petit fichier bat comme lanceur: un double-clic dessus et ça marche! On peut même créer une icône sur le bureau pour ça. La seule limite, c'est lorsque l'application a des modules externes compliqués à intégrer dans le Python portable. Mais ceux-ci sont déjà richement dotés.

    Et si chez toi tu as Linux, j'imagine que tu n'as pas de problème pour y installer Python 3 (pour Python 2, tu l'as déjà forcément).

    Concernant le codage multiplateforme, c'est assez facile avec Python, à condition bien sûr de ne pas utiliser les quelques modules et fonctions spécifiques à l'un des OS. Pour le graphique comme PyQt, c'est encore plus simple.

    A mon avis, c'est la meilleure solution.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. Application pro en python
    Par nashouille dans le forum Général Python
    Réponses: 5
    Dernier message: 26/09/2013, 15h29
  2. Développement d'applications PHP vs Python
    Par Petit_Scarabée dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 19/01/2011, 10h59
  3. Les applications web et Python
    Par deltus7529 dans le forum Réseau/Web
    Réponses: 13
    Dernier message: 18/07/2007, 18h45
  4. Python? Plone? Quelles applications?
    Par klerdesign dans le forum Zope
    Réponses: 1
    Dernier message: 17/08/2006, 10h57
  5. Internationnalisation d'une application Python
    Par leviathan516 dans le forum Général Python
    Réponses: 1
    Dernier message: 22/03/2006, 14h48

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