Existe-t-il un moyen de créer des fichiers Python, comme JAR en Java? J'ai besoin d'un ensemble de classes et de fonctions Python, mais contrairement à un module standard, j'aimerais que ce soit dans un seul fichier.Combinaison de fichiers de module en Python
Répondre
Jetez un oeil à Python Oeufs: http://peak.telecommunity.com/DevCenter/PythonEggs
Ou, vous pouvez utiliser zips réguliers: http://docs.python.org/library/zipimport.html
La plus simple approche consiste à utiliser simplement zip
. Un fichier jar
en Java est un fichier zip contenant des métadonnées telles qu'un manifeste; mais vous n'avez pas forcément besoin de la metatada - Python peut importer depuis un fichier zip tant que vous placez ce fichier zip sur sys.path, comme vous le feriez pour n'importe quel répertoire. Dans le fichier zip, vous pouvez avoir les sources (fichiers .py), mais Python devra les compiler à la volée chaque fois qu'un processus les importe pour la première fois; ou vous pouvez avoir les fichiers bytecode (.pyc ou .pyo) mais vous êtes limité à une version spécifique de Python et soit à l'absence (pour .pyc) ou à la présence (pour .pyo) du flag -O (ou -OO).
Comme d'autres réponses indiqué, il existe des formats tels que .egg
qui viennent enrichir le fichier zip avec metatada en Python et, comme Java .jar
, mais que ce soit dans un cas d'utilisation particulière qui vous donne une valeur supplémentaire wrt une zipfile plaine est une décision vous pouvez créer
Vous pouvez créer des fichiers zip contenant du code Python et importer à partir de fichiers zip en utilisant zipimport. Un système tel que PyInstaller (multiplateforme) ou py2exe (Windows) fera tout cela pour vous.
Lisez ceci PEP pour plus d'informations. En outre, Import modules from Zip.
Après avoir cherché une solution au même problème, je fini par écrire un outil simple qui combine plusieurs fichiers .py en un seul: PyBreeder
Il ne fonctionne qu'avec les modules Python pure et peut nécessiter des essais- et -erreur pour obtenir l'ordre des modules, mais c'est très pratique quand vous voulez déployer un script avec des dépendances en un seul .py. Les commentaires/corrections/critiques sont les bienvenus!
- 1. Combinaison de dictionnaires de listes en Python
- 2. Combinaison de deux fichiers PDF en C++
- 3. Module re de Python - état de sauvegarde?
- 4. Module Python SSH/SFTP?
- 5. trouver le nom du module de l'exception d'origine en Python
- 6. Comment obtenir l'instance de module pour une classe en Python?
- 7. Globales de module Python contre __init__ globales
- 8. Module Python pour VBox?
- 9. Classe Python et attributs de module
- 10. Mosso Python Module
- 11. Installation du module python
- 12. Comment changer un nom de module Python?
- 13. Module Python Cmd, problème de sous-classement
- 14. Transfert de fichiers en vrac Amazon Python S3 via Python
- 15. Telerik RadScriptManager - erreur lors de la combinaison des fichiers js
- 16. Combinaison de plusieurs fichiers dans une archive unique (Silverlight/C#)
- 17. Python: Aucun module nommé core.exceptions
- 18. Comment utiliser le module Easygui de Python pour choisir des fichiers et insérer des noms de fichiers dans le code
- 19. python Nom du fichier de la classe du module MySQL
- 20. Lire des fichiers en python
- 21. combinaison de plusieurs fichiers .js en un dans un processus de construction
- 22. Combinaison de deux tableaux en Ruby
- 23. Utiliser le module de sous-processus Python 2.6 en Python 2.5
- 24. module installé sur l'éditeur python
- 25. Problème avec le module Python
- 26. Importation d'un module python .net - « Aucun module le signal nommé »
- 27. combiner des fichiers javascript au déploiement en python
- 28. Déplacement de fichiers sous python
- 29. Python Modification des variables du module dans un autre module
- 30. Erreurs avec le module de mécanisation de Python
Merci beaucoup! J'avais vu le terme «oeuf» utilisé, mais je n'avais aucune idée de ce que c'était. – c4757p