Qu'est-ce que j'utilise sous Linux pour rendre un programme Python exécutable

87

Je viens d'installer un système Linux (Kubuntu) et je me demandais s'il y avait un programme pour rendre les programmes python exécutables pour Linux.

rmtheis
la source
Déjà répondu ici http: //stackoverflow.com/questions/193077 / ...
Andrew Beyer
2
Non, il n'y a pas de réponse. Cette question interroge sur les problèmes de distribution.
tzot
Non, ce n'est pas une dupe. Cette question est liée à la distribution de logiciels python en évitant les problèmes de disponibilité et de compatibilité des bibliothèques.
tzot

Réponses:

155

Mettez simplement ceci dans la première ligne de votre script:

#!/usr/bin/env python

Rendre le fichier exécutable avec

chmod +x myfile.py

Exécuter avec

./myfile.py
Vincent Van Den Berghe
la source
6
Je suis confus. Comment fonctionne le "#! / Usr / bin / env python" quand le hachage est censé en faire une ligne commentée? J'ai essayé d'exécuter le script sans la ligne de hachage, mais cela n'a pas fonctionné. Alors évidemment, la ligne est obligatoire, mais comment ça marche si c'est un commentaire?
Nav du
5
Si vous envoyez des scripts à un autre programmeur, c'est très bien. Mais ce n'est pas un moyen approprié de distribuer des programmes Python aux utilisateurs finaux. Que faire si l'utilisateur n'a pas installé Python? Et s'ils le font, mais que c'est une version différente de celle dans laquelle vous avez écrit le programme? Dans l'ensemble, cela ne fonctionnera que pour un petit pourcentage d'utilisateurs, en particulier sous Windows.
Jonathan Hartley
4
@MathManiac Si vous procédez comme vous l'impliquez, environ 15% des utilisateurs ne pourront pas exécuter votre application. Ce sera un fardeau de support paralysant, sans parler d'une expérience utilisateur incroyablement hostile, qui générera un torrent de messages haineux «application X suce». Je maintiens mon affirmation selon laquelle ce n'est pas une manière appropriée de distribuer des applications aux utilisateurs finaux.
Jonathan Hartley le
2
@PrahladYeri utilise # / usr / bin / env python3
kingledion
3
@Nav Cela s'appelle un Shebang . Il est commenté car il ne doit pas être interprété par python. Il donne des informations au système d'exploitation. Plus précisément, il indique quel programme doit être utilisé pour exécuter le script.
MannyC
16

Si vous souhaitez obtenir une application binaire autonome en Python, essayez d'utiliser un outil tel que py2exe ou PyInstaller .

Mihai8
la source
mot-clé: autonome
D Adams
Puis-je décompiler la sortie de PyInstaller?
SuB
13

Vous pouvez utiliser PyInstaller. Il génère un build dist afin que vous puissiez l'exécuter comme un seul fichier "binaire".

http://pythonhosted.org/PyInstaller/#using-pyinstaller

Python 3 a l'option native de créer une dist de construction également:

https://docs.python.org/3/distutils/builtdist.html

Leo Pepe
la source
la question n'est pas de créer des fichiers exe / elf de scripts python
warvariuc
8
Désolé mais il semble que la question est juste ça! "se demandait s'il existe un programme pour rendre les programmes python exécutables pour Linux."
Leo Pepe
4

Mettre ces lignes au début du code indiquera à vos systèmes d'exploitation de rechercher le programme binaire nécessaire à l'exécution du script python, c'est-à-dire qu'il s'agit de l'interpréteur python.

Cela dépend donc de votre système d'exploitation où il conserve l'interpréteur python. Comme j'ai Ubuntu comme système d'exploitation, il conserve l'interpréteur python /usr/bin/pythondonc je dois écrire cette ligne au début de mon script python;

#!/usr/bin/python

Après avoir complété et enregistré votre code

  1. Démarrez votre terminal de commande

  2. Assurez-vous que le script se trouve dans votre répertoire de travail actuel

  3. Type chmod +x script_name.py

  4. Vous pouvez maintenant démarrer le script en cliquant sur le script. Une boîte d'alerte apparaîtra; appuyez sur "Exécuter" ou "Exécuter dans le terminal" dans la boîte d'alerte; ou, à l'invite du terminal, tapez./script_name.py

Mohit Dabas
la source
4

Si on veut rendre exécutable hello.py

trouvez d'abord le chemin où se trouve python dans votre système d'exploitation avec: which python

il réside généralement dans le dossier "/ usr / bin / python".

à la toute première ligne de l' hello.pyun devrait ajouter:#!/usr/bin/python

puis via la commande linux chmod

on devrait juste le rendre exécutable comme: chmod +x hello.py

et exécutez avec ./hello.py

Nilesh K.
la source
1

Je fais ce qui suit:

  1. mettre #! / usr / bin / env python3 en haut du script
  2. chmod u + x fichier.py
  3. Remplacez .py par .command dans le nom de fichier

Cela transforme essentiellement le fichier en un exécutable bash. Lorsque vous double-cliquez dessus, il devrait s'exécuter. Cela fonctionne dans les systèmes basés sur Unix.

dan_the_ham-man
la source
0

Une autre façon de procéder pourrait être de créer un alias. Par exemple en écriture de terminal:

alias printhello='python /home/hello_world.py'

L'écriture printhelloexécutera hello_world.py, mais ce n'est que temporaire. Pour rendre les alias permanents, vous devez les ajouter à bashrc, vous pouvez le modifier en écrivant ceci dans le terminal:

gedit ~/.bashrc
coco
la source