web-dev-qa-db-fra.com

Comment exécuter des fichiers Python Egg directement sans les installer?

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
33
Marko Kukovec

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
17
monkut

À 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é.)

14
PJ Eby

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.

0
Madhu Cheemala