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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    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
    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,

    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 confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    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.

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    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 confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    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.

  6. #6
    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 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
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    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
    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 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

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