web-dev-qa-db-fra.com

Comment convertir le fichier python .py en un fichier exécutable pour une utilisation multiplateforme?

J'ai cherché dans SO pendant un certain temps maintenant en essayant de trouver une réponse à cela, mais en raison de mon inexpérience en programmation, je ne comprends pas beaucoup la documentation, et je ne suis pas confiant assez pour expérimenter trop.

Quelqu'un pourrait-il décrire en termes légèrement plus simples comment j'utiliserais des programmes comme Py2exe, PyInstaller, cx_freeze etc.? Je veux juste un moyen pour les autres (principalement des amis) de pouvoir exécuter mon programme (simple, texte uniquement) sans avoir à télécharger python eux-mêmes. S'il existe un moyen plus simple de le faire, je aimerais le savoir aussi.

Sous Vista 32 bits, python 2.7

14
Ricochet_Bunny

Il existe deux façons distinctes de geler les scripts python pour créer des exécutables:

  1. Emballage de l'interpréteur et des fichiers * .pyc dans un conteneur de fichiers exe. Une telle approche est utilisée par des outils tels que PyInstaller , Py2exe , cx_freeze .
  2. Création de code natif à partir de Python source, généralement en utilisant une étape intermédiaire de conversion de Python-source en code C ou C++. Cela se fait par des outils tels que Shed-skin et Nuitka . Le problème de cette approche est que ces outils ne supportent pas toujours toutes les fonctionnalités de Python (par exemple, ils peuvent avoir des limitations de frappe, etc.)

Le point par lequel vous devez commencer est la lecture de la documentation. Ces outils ne sont pas seulement des outils de style Push-and-run, ils ont généralement une configuration qui doit être implémentée (c'est le problème de tous les systèmes de construction, et à mesure que le projet se développe, la configuration et le nombre de crochets augmentent également).

Vous pouvez commencer par tutoriel Py2exe et 'hello-world' pour vous familiariser avec la façon dont la compilation est effectuée. Pour autant que je sache, c'est le moyen le plus simple d'atteindre votre objectif.

Et la dernière chose, vous ne pouvez pas créer d'exécutables natifs multiplateformes car leurs formats de fichier dépendent fortement du système d'exploitation et du matériel.

12
Rostyslav Dzinko
  1. Télécharger py2exe
  2. Téléchargez ce msvcp90.dll
  3. Copiez votre FileCode.py [~ # ~] et [~ # ~] msvcp90.dll à C:\Python27 \
  4. Dans C:\Python27\créez un nouveau fichier texte, puis entrez ce code à l'intérieur:
from distutils.core import setup
import py2exe
setup(console=['Avril.py'])
  1. Remplacez Avril.py par YourFileName.py
  2. Enregistrez le fichier sous setup.txt
  3. Ouvrez [~ # ~] cmd [~ # ~] et tapez ceci:

cd C:\Python27 \
python setup.txt py2exe

  1. Allez maintenant dans C:\Python27\dist\et voici votre programme . Exe.

Source: Manvir Singh

3
KiDo

Installez pyinstaller, un programme qui convertit .py en .exe pour python 2.7 où python se trouve:

cd C:\python27\scripts
pip install pyinstaller

puis déplacez le fichier python que vous souhaitez compiler vers C:\python27\scripts, compilez à partir de là en utilisant:

pyinstaller --onefile yourfile.py

le --onefile est facultatif mais il regroupe le tout (dans cet exemple yourfile.py) en un seul .exe. Une fois que tout est fait, il y aura 2 nouveaux dossiers avec un fichier .spec. Depuis C:\python27\scripts, ouvrez le dossier dist. Votre fichier .exe y sera situé dans un fichier que vous pouvez appuyer deux fois pour l'exécuter et le distribuer à toute personne ne disposant pas de python. J'espère que ça aide.

1
eclipse

Les scripts Python peuvent être rendus directement exécutables, comme les scripts Shell, en plaçant le chemin d'environnement python en haut du fichier de script).

#!/usr/bin/env python3.5 

Le programme d'installation Python associe automatiquement les fichiers .py à python.exe afin qu'un double-clic sur un fichier Python l'exécute comme un script. L'extension peut être également .pyw, dans ce cas, la fenêtre de console qui apparaît normalement est supprimée.

La description détaillée de Linux est également ici .

1
Mohammed Yasin