如何直接运行Python egg文件而不安装它们?

时间:2009-08-12 06:07:31

标签: python egg

是否可以直接运行Python egg文件,因为您可以使用Java运行jar文件?

例如,使用Java可能会出现类似的内容:

$ java -jar jar-file

4 个答案:

答案 0 :(得分:17)

python egg是“单文件可导入的分发格式”。这通常是一个python包。

只要您知道它的名字,就可以在鸡蛋中导入包裹。

您可以使用“-m”选项和包名执行包。

然而,python包在执行时通常不会执行任何操作,并且您可能会收到错误。 -c选项可用于运行代码。 (有关命令行选项的详细信息,请参阅http://docs.python.org/using/cmdline.html

> 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

答案 1 :(得分:14)

从Python 2.6开始,您可以使用python some.egg,如果它包含名为__main__的模块,它将被执行。

对于早期版本的Python,您可以使用PYTHONPATH=some.egg python -m some module,并且egg中的somemodule将作为主模块运行。 (注意:如果您使用的是Windows,则需要单独执行SET PYTHONPATH=some.egg。)

答案 2 :(得分:5)

例如,如果要导入suds模块,该模块可用作.egg文件:

egg_path='/home/shahid/suds_2.4.egg'

sys.path.append(egg_path)

import suds
#... rest of code

答案 3 :(得分:0)

Python Egg文件直接执行步骤

假设您有鸡蛋文件和驱动程序文件通过以下命令运行。

PYTHONPATH=eggfilename.egg python driverfile.py

以上命令没有安装带有python代码的egg文件。