【发布时间】:2010-11-18 20:44:48
【问题描述】:
是否可以像用Java运行jar文件一样直接运行Python的egg文件?
例如,使用 Java,您可能会执行以下操作:
$ java -jar jar-file
【问题讨论】:
是否可以像用Java运行jar文件一样直接运行Python的egg文件?
例如,使用 Java,您可能会执行以下操作:
$ java -jar jar-file
【问题讨论】:
Python Egg 文件直接执行步骤
假设你有egg文件和驱动文件来运行下面的命令。
PYTHONPATH=eggfilename.egg python driverfile.py
上面的命令用于不使用 python 代码安装 egg 文件。
【讨论】:
从 Python 2.6 开始,您可以使用 python some.egg,如果它包含名为 __main__ 的模块,它将被执行。
对于早期版本的 Python,您可以使用 PYTHONPATH=some.egg python -m some module,并且 egg 中的 somemodule 将作为主模块运行。 (注意:如果您使用的是 Windows,则需要单独创建一个 SET PYTHONPATH=some.egg。)
【讨论】:
.py 文件,然后将其列在 setup arguments
例如,如果您要导入以 .egg 文件形式提供的 suds 模块:
egg_path='/home/shahid/suds_2.4.egg'
sys.path.append(egg_path)
import suds
#... rest of code
【讨论】:
python egg 是“一种可导入的单文件分发格式”。这通常是一个 python 包。
只要你知道它的名字并且在你的路径中,你就可以将包导入到 egg 中。
您可以使用“-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
【讨论】: