gpt4 book ai didi

python - 为什么 "eggsecutable"搜索 __main__

转载 作者:行者123 更新时间:2023-12-05 03:06:00 25 4
gpt4 key购买 nike

我尝试制作一个可执行文件 *.egg文件。我可以使用以下方法创建它:我只是放了一个 __main__.py.egg 的顶层名为 .zip , 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 ?

系统:

  • Win 7
  • python 2.7.9
  • setuptools 39.0.1 来自 c:\python27\lib\site-packages (Python 2.7))

更新

我在 Linux 上都用 python3 试过了,但我得到了同样的错误。

最佳答案

入口点文档似乎具有误导性,您不需要它们。

你可能想要这样的东西:

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

运行 egg:python dist\example_pkg-0.0.1-py3.6.egg

输出:鸡蛋测试

解决方案来源:https://mail.python.org/pipermail/distutils-sig/2015-June/026524.html

关于python - 为什么 "eggsecutable"搜索 __main__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50062168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com