我尝试制作可执行文件*.egg
。我可以使用以下方法创建它:我只是将__main__.py
放在名为.egg
的{{1}}的顶层,而python将运行.zip
我读过有一种更优雅的方式:
__main__.py
https://setuptools.readthedocs.io/en/latest/setuptools.html#eggsecutable-scripts
但是如果我创建(使用run setup(
# other arguments here...
entry_points={
'setuptools.installation': [
'eggsecutable = my_package.some_module:main_func',
]
}
)
)并运行setup.py bdist_egg
,它会打印:
*.egg
所以python找不到入口点。
是否可以制作一个没有明确C:\Python27\python.exe: can't find '__main__' module in <eggpath>
的可执行蛋?
系统:
更新
我已经在使用python3的Linux上尝试过这两种错误。
答案 0 :(得分:1)
入口点文档似乎具有误导性,您不需要它们。
你可能想要这样的东西:
setup.py
:
import setuptools
setuptools.setup(
name="example_pkg",
version="0.0.1",
# all the other parameters
# function to call on $ python my.egg
py_modules=['example_pkg.stuff:main']
)
example_pkg/stuff.py
def main():
print("egg test")
if __name__ == '__main__':
main()
创建鸡蛋:setup.py bdist_egg
跑蛋:python dist\example_pkg-0.0.1-py3.6.egg
输出:egg test
解决方案来源:https://mail.python.org/pipermail/distutils-sig/2015-June/026524.html