如何直接运行Python蛋文件而无需安装?

36 投票
4 回答
48211 浏览
提问于 2025-04-15 13:32

可以像运行Java的jar文件那样直接运行Python的egg文件吗?

比如,在Java中你可能会这样做:

$ java -jar jar-file

4 个回答

6

比如说,如果你想要导入一个叫做suds的模块,而这个模块是以.egg文件的形式提供的:

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

sys.path.append(egg_path)

import suds
#... rest of code
16

从Python 2.6开始,你可以直接用 python some.egg 来运行一个包含 __main__ 模块的文件。

如果你使用的是更早版本的Python,可以用 PYTHONPATH=some.egg python -m somemodule 来运行这个egg里的 somemodule 模块,作为主模块来执行。(注意:如果你是在Windows系统上,需要先单独执行 SET PYTHONPATH=some.egg。)

18

一个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

撰写回答