2010-09-08 11 views
7

J'ai donc un script python qui repose sur quelques modules. Spécifiquement pexpect et pyinoitify. Je sais que vous pouvez compiler un script python dans un fichier .exe dans Windows, mais y a-t-il quelque chose de relativement équivalent dans Linux? Je m'en fous que ce soit un binaire, j'aimerais juste pouvoir distribuer mon script sans avoir besoin de l'installation séparée de pexpect et pyinotify. Est-ce possible/utile?compilez le script python sous linux

Répondre

6

cx_Freeze est une manière multiplate-forme de "geler" un script Python en une forme binaire autonome. Selon leur site:

cx_Freeze est un ensemble de scripts et modules pour le gel des scripts Python dans executables de la même façon que py2exe et py2app faire. Contrairement à ces deux outils, cx_Freeze est cross plate-forme et devrait fonctionner sur n'importe quelle plate-forme sur laquelle travaille Python lui-même. Il nécessite Python 2.3 ou supérieur puisque il utilise l'installation d'importation zip qui a été introduit dans cette version .

1

En général, si la première ligne est

#!/usr/bin/env python 

et le fichier a le mode "x" set (chmod +x yourfile.py)

Ensuite, il est exécutable. Aucune compilation requise.

Et oui, les gens doivent installer les choses dont vous dépendez. C'est (a) plus simple et (b) moins surprenant s'ils font l'installation, donc ils savent ce qui se passe réellement.

+2

La question concerne la distribution du script avec ses dépendances, pas seulement l'exécution. – katrielalex

0

Dans Linux, essayez d'éviter de telles choses. La plupart des gestionnaires de paquets gèrent très bien les dépendances, distribuez simplement votre script et indiquez les dépendances dont il a besoin.

+1

Qu'est-ce qu'un gestionnaire de paquets a à faire avec les modules python? – Falmarri

+0

Distribuez votre module en tant que package et déclarez une dépendance sur les autres modules dont il a besoin. Problème résolu (quoique non portable). – tripleee