Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Déploiement/Installation
Déploiement/Installation Forum d'entraide sur le déploiement d'applications et sur l'installation/compilation de bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/10/2011, 10h54   #1
nancy maman
Membre du Club
 
Inscription : février 2011
Messages : 297
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 297
Points : 56
Points : 56
Par défaut PyInstaller sous lunix

Bonjour
juste une petite question , est ce qu'il existe un logiciel qui génère un exécutable du code source python qui fonction à la fois sous Windows que sous lunix

j'ai installer pyinstaller sous windows et j'arrive à générer l’exécutable de mon code python mais le problème que cet exécutable est d’extension .exe donc il fonctionne seulement sous Windows pas sous Lunix
merci
nancy maman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 11h46   #2
VinsS
Membre Expert
 
Homme
Inscription : octobre 2008
Messages : 936
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : octobre 2008
Messages : 936
Points : 1 402
Points : 1 402
Sous Linux, tu ne dois pas nécessairement installer un programme Python dans le sens Windows du terme.

L'utilisateur copie simplement les fichiers du programme dans son répertoire personnel et peut directement lancer le script principal de l'appli.

Évidement, une installation dans le dossier /usr selon les règles afin que tous les utilisateurs puissent utiliser le programme est préférable et surtout si il y a des dépendances à prévoir, des bibliothèques tierces par exemple ou encore pour avoir une entrée dans le menu des applications.

Ceci, cependant, se fait par le biais de paquetages dont la forme et par conséquent la construction, varient selon la distribution. Deban, OpenSuze, Archlinux etc.

Donc, en gros, tu peux directement tester sous Linux un programme Python sans l'installer, ni créer d'exe d'aucune forme, et garder la question d'une instal pour plus tard.

Je ne dis pas que ton programme fonctionnera d'office sous Linux, faudra sans doute quelques ajustements.


...

Tout ceci est valable aussi pour Lunix.
__________________
Vincent
Oqapy . Qarte . PaQager
VinsS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 12h02   #3
chticricri
Membre habitué
 
Homme Christian Havard
Développeur informatique
Inscription : mai 2011
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Christian Havard
Localisation : Belgique

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

Informations forums :
Inscription : mai 2011
Messages : 100
Points : 139
Points : 139
Par défaut cx_freeze, mais...

Salut,

Entièrement d'accord avec Vins, sous Linux, il n'y a pas vraiment de raison
de "geler" le code python pour le rendre exécutable.

Cela dit, il y quand même moyen de le faire via cx_Freeze. Si le script
de "compilation" peut être commun avec celui utilisé par la version windows,
le résultat n'est en aucun casinterchangeable. Sauf, évidement, à faire tourner l'exe dans un Wine (je ne l'ai personnellement jamais testé)

Encore une fois, il vaut mieux, quand c'est possible, distribuer ton programme
en mode source (du moins sous Linux). Sous Windows, et dans un réseau d'entreprise, il peu par contre être judicieux de protéger un programme contre
les modifications des petits malins... (Sans connotation péjorative).

A bientôt
chticricri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 11h24   #4
tyrtamos
Expert Confirmé
 
Avatar de tyrtamos
 
Inscription : décembre 2007
Messages : 1 767
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 1 767
Points : 3 035
Points : 3 035
Bonjour,

Comme je travaille essentiellement en multiplateforme (au moins Windows-Linux), j'utilise cx_freeze. Et avec cx-freeze, j'utilise la méthode avec "setup.py", et je fais en sorte que le même setup.py puisse être utilisé sans modification sous Windows et Linux.

Sous Windows, après avoir utilisé cx_freeze, je crée une version installable avec "Inno setup". J'obtiens alors un seul fichier .exe que je peux transmettre, et qui s'installe/désinstalle facilement comme n'importe quel logiciel Windows.

Sous Linux, je ne sais pas créer de "paquet" .rpm, .deb (mais j'aimerais bien y arriver un jour...), et je me suis donc limité à la version exécutable à recopier quelque part.

Pour obtenir cette version exécutable avec cx_freeze sous Linux, je m'étais donné comme objectif de pouvoir l'exécuter sur un autre linux "brut d'installation", c'est à dire qui n'a pas les bibliothèques nécessaires comme PyQt4, voire qui n'a pas la bonne version de Python pré-installée. Et ça, ça n'a pas été facile, parce que l'intégration de certaines bibliothèques nécessite une instruction de cx_freeze qui n'existe que dans une version récente: il faut donc compiler un cx_freeze récent au lieu d'installer celui prévu!

Avec ça, j'ai pu vérifier qu'un gros programme PyQt4 (10000 lignes de code), ainsi rendu exécutable sous Ubuntu avec cx_freeze, fonctionnait parfaitement sur un Ubuntu "brut d'installation" (donc sans PyQt4).

Bref, tout ça marche très bien, et mes petites expériences sur le sujet se trouvent ici:

http://pyqt.developpez.com/tutoriels...pyqt4/windows/

http://pyqt.developpez.com/tutoriels...e-pyqt4/linux/

Ainsi, bien sûr, que sur mon site: http://python.jpvweb.com/mesrecettespython/
__________________
Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos...
Mes recettes python: http://www.jpvweb.com
tyrtamos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h15   #5
nancy maman
Membre du Club
 
Inscription : février 2011
Messages : 297
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 297
Points : 56
Points : 56
je viens de tester les étapes decrites par votre lien
l'archive de cx_Freeze je les desarchivé sur le Bureau .
quand je fais
Code :
 sudo python setup.py install
j'ai plein d'erreur

Code :
1
2
3
4
5
6
7
source/util.c:6:20: error: Python.h: Aucun fichier ou dossier de ce type
source/util.c:405: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
source/util.c:419: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_ModuleMethods’
source/util.c:456: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
source/util.c: In function ‘initutil’:
source/util.c:490: warning: implicit declaration of function ‘Module_Initialize’
error: command 'gcc' failed with exit status 1
nancy maman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h30   #6
nancy maman
Membre du Club
 
Inscription : février 2011
Messages : 297
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 297
Points : 56
Points : 56
le dossier desarchivé je dois le placer ou exactement dans mon repertoire de projet
car là j'ai une erreur quand je lance la commande l'erreur est :
Code :
1
2
3
4
raceback (most recent call last):
  File "setup.py", line 7, in <module>
    from cx_Freeze import setup, Executable
ImportError: No module named cx_Freeze
nancy maman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h34   #7
nancy maman
Membre du Club
 
Inscription : février 2011
Messages : 297
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 297
Points : 56
Points : 56
dans mon fihcier setup.py crée j'ai rajouté cette ligne
Code :
from cx_Freeze-4.2.2.cx_Freeze import setup, Executable
car mon fichier cx_Freeze se trouve dans le repertoire cx_Freeze-4.2.2
mais j'ai toujours une erreur
Code :
1
2
3
4
5
python setup.py build
  File "setup.py", line 7
    from cx_Freeze-4.2.2.cx_Freeze import setup, Executable
                  ^
SyntaxError: invalid syntax
nancy maman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 18h00   #8
tyrtamos
Expert Confirmé
 
Avatar de tyrtamos
 
Inscription : décembre 2007
Messages : 1 767
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 1 767
Points : 3 035
Points : 3 035
Bonjour,

Tu mélanges les étapes!

1- installation de cx_freeze par compilation

Comme c'est marqué dans mon tuto, tu te places dans le répertoire cx_Freeze-4.2.2 qui ne contient que les sources désarchivées de cx_Freeze. Cela n'a rien à voir pour l'instant avec ton projet, ni même avec PyQt4, et le "setup.py" de ce répertoire n'est pas le même que le "setup.py" de ton projet.

Pour que ça marche, tu dois avoir déjà installé python-dev.

Après avoir exécuté les 2 lignes de code et si pas d'erreur, cx_Freeze est installé. Pour le vérifier, tu lances idle (par exemple), et tu fais: "import cx_Freeze". Si ça donne une erreur, cx_Freeze n'est pas correctement installé.

2- après, et après seulement, tu peux continuer ton projet, et dans ce cas, tu te places avec une console dans le répertoire de ton projet, celui qui contient le setup.py que tu as édité et qui va utiliser le cx_Freeze installé précédemment.

Quand ça ne marche pas, tu gagnerais du temps à relire le tuto...
__________________
Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos...
Mes recettes python: http://www.jpvweb.com
tyrtamos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2011, 10h55   #9
Luke spywoker
Membre éclairé
 
Avatar de Luke spywoker
 
Homme
Etudiant informatique autodidacte
Inscription : juin 2010
Messages : 591
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Etudiant informatique autodidacte

Informations forums :
Inscription : juin 2010
Messages : 591
Points : 370
Points : 370
C'est bizarre moi j'utilise Pyinstaller Sous Linux pour compiler...
Tu peut télécharger le *.tar ici http://www.pyinstaller.org/
Mais je crois etre hors sujet.
__________________
Pour faire tes armes:
Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
Et sois toujours bien armé avant de te lancer.
Le hasard ne sourit qu'aux gens préparés...
Blog: http://3dcyberspace.unblog.fr/
Site: Sanctuaire cybernétique
Luke spywoker est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h11.


 
 
 
 
Partenaires

Hébergement Web