Est-il possible d'exécuter des fichiers Python Egg directement, comme vous pouvez exécuter des fichiers jar avec Java?
Par exemple, avec Java, vous pouvez utiliser quelque chose comme:
$ Java -jar jar-file
Un python Egg est un "format de distribution importable dans un seul fichier". Ce qui est typiquement un paquet Python.
Vous pouvez importer le paquet dans l'œuf à condition de connaître son nom et son chemin.
Vous pouvez exécuter un paquet en utilisant l'option "-m" et le nom du paquet.
Cependant, les paquetages python ne font généralement rien lorsqu'ils sont exécutés et vous risquez d'obtenir une erreur. L'option -c peut être utilisée pour exécuter du code. (Voir http://docs.python.org/using/cmdline.html pour plus de détails sur les options de ligne de commande)
> python -m sphinx
sphinx is a package and cannot be directly executed
> python -c "import <package in an Egg>; <function>();"
> python -c "import sphinx; print sphinx.package_dir"
C:\Python26\lib\site-packages\sphinx-0.6.1-py2.6.Egg\sphinx
À partir de Python 2.6, vous pouvez utiliser python some.Egg
et il sera exécuté s'il contient un module nommé __main__
.
Pour les versions antérieures de Python, vous pouvez utiliser PYTHONPATH=some.Egg python -m some module
, et somemodule
à partir de Egg sera exécuté en tant que module principal. (Remarque: si vous utilisez Windows, vous devez créer un SET PYTHONPATH=some.Egg
séparé.)
Par exemple, si vous souhaitez importer le module sud disponible sous forme de fichier .Egg:
Egg_path='/home/shahid/suds_2.4.Egg'
sys.path.append(Egg_path)
import suds
#... rest of code
Etapes d'exécution directe du fichier Python Egg
Supposons que vous ayez un fichier Egg et un fichier de pilote à exécuter avec la commande ci-dessous.
PYTHONPATH=eggfilename.Egg python driverfile.py
commande ci-dessus pour sans installer Egg fichier avec du code python.