Y a-t-il un moyen de réunir des fichiers Python, semblable à Jar en Java? J'ai besoin d'un moyen d'emballage de classes et de fonctions de Python, mais contrairement à un module standard, j'aimerais que ce soit dans un fichier. P>
5 Réponses :
Jetez un coup d'œil aux œufs Python: http://peak.telecommunity.com/DevCenter/pythonegs a> p>
ou, vous pouvez utiliser des zips réguliers: http://docs.python.org/library/ zipimport.html p>
Merci! J'avais vu le terme "œuf" utilisé, mais je n'avais aucune idée de ce que c'était.
L'approche la plus simple consiste à simplement utiliser Comme d'autres réponses indiquées, il existe des formats tels que zip code>. Un fichier
jar code> en Java est un zipfile contenant des métadonnées telles qu'un manifeste; Mais vous n'avez pas nécessairement besoin de la métatada - Python peut importer de l'intérieur d'un zipfile aussi longtemps que vous placez ce zipfile sur Sys.Path, comme vous le feriez pour n'importe quel répertoire. Dans le ZIPFILE, vous pouvez avoir les sources (.PYPY Fichiers), mais Python devra ensuite les compiler à la volée à chaque fois qu'un processus les importe d'abord; ou vous pouvez avoir les fichiers bytecode (.pyc ou .pyo), mais vous êtes alors limité à une version spécifique de Python et à l'une des absences (pour le .pyc) ou la présence (pour .pyo) de drapeau -o (ou -OOO ). p>
.gg code> qui enrichissent le zipfile avec la métatada à Python, comme Java
.jar code>, mais si dans un particulier Utilisez un étui qui vous donne une valeur supplémentaire WRT Un ZIPFILE UNIRE est une décision pour vous de faire P>
Vous pouvez créer des fichiers zip contenant du code Python et importer à partir de fichiers zip à l'aide de ZIPIMPORT . Un système tel que pyinstaller (plate-forme croisée) ou Py2exe (Windows) fera tout cela pour vous. P>
Après avoir cherché une solution au même problème, j'ai fini par écrire un outil simple qui combine plusieurs fichiers .PY en un: PYBREEDER P>
Il ne fonctionnera que avec des modules pyrêts python et peut nécessiter une certaine erreur d'essai pour obtenir l'ordre des modules à droite, mais il est assez pratique chaque fois que vous souhaitez déployer un script avec certaines dépendances en tant que célibataire .py. Commentaires / Patchs / Critique sont les bienvenus! P>
Je l'ai fait quelque chose de similaire car il semblait cool, mais Pyberdeder a l'air moins ridicule et hacky.