我尝试制作一个可执行的*.egg
文件。我可以使用以下方法创建它:我只需要在名为.zip
的.egg
顶层放置一个__main__.py
,Python将运行该__main__.py
。
我了解到还有一种更优雅的方法:
setup(
# other arguments here...
entry_points={
'setuptools.installation': [
'eggsecutable = my_package.some_module:main_func',
]
}
)
https://setuptools.readthedocs.io/en/latest/setuptools.html#eggsecutable-scripts
当我用 setup.py bdist_egg
命令创建并运行 *.egg
文件时,会打印出以下信息:
C:\Python27\python.exe: can't find '__main__' module in <eggpath>
这意味着 Python 找不到入口点。
是否可能制作一个没有显式的 __main__.py
的可执行 egg 文件?
系统环境:
- Windows 7
- Python 2.7.9
- setuptools 39.0.1 from c:\python27\lib\site-packages (Python 2.7))
更新:
我已经在 Linux 上尝试了 python3,但是也得到了同样的错误信息。
my_package.some_module
中有main_func
吗? - CristiFati__main__.py
放置在egg的顶层。我将__main__.py
放在setup.py
旁边,但它最终被移动到包中,因此其在.egg
内的位置为example_pkg/__main__.py
。 - Cryn