【问题标题】:python entry_point no module name __main__python entry_point 没有模块名称 __main__
【发布时间】:2020-12-30 14:26:58
【问题描述】:

我一直在尝试为我的项目而不是 cli 设置一个新的入口点,我想启动 main()。我在 setup.py 中尝试了几种变体,当它与 pip3 一起安装时,似乎无法正确导入 main

这是 setup.py 中的入口点代码(注意旧的 # 代码之前使用 click for CLI 工作)

entry_points={
    'console_scripts': [
        'shenko = shenko.__main__:main',
    ],
},
# This was the old entry point to run shenko as command line
#entry_points={
#    'console_scripts': [
#        'shenko=shenko.cli:main',
#    ],
#},

这里是源代码; github code, look in setup.py

这是我得到的最后一个 Traceback;

Traceback (most recent call last):
File "/home/shenko/.local/bin/shenko", line 5, in <module>
from shenko.__main__ import main
ModuleNotFoundError: No module named 'shenko.__main__'

在 setup.py 中我尝试了以下代码;

'shenko = shenko.__main__:main'
'shenko = shenko:main'
'shenko = shenko.main:main'

都没有用。欢迎任何建议 感谢您的宝贵时间,非常感谢。

【问题讨论】:

  • 欢迎来到 Stack Overflow!如果可能,请修改您的问题,使其独立,包括直接包含所有必要的代码,而不是通过 Github 链接。如果使用外部参考,问题往往会随着时间的推移而中断。你可以参考How do I ask a good question?

标签: python pip python-packaging entry-point


【解决方案1】:

已确认与@phd 的回答合作

'shenko = shenko.shenko:main'

申科文件夹 调用 shenko.py 调用 main()

我遇到的问题是无关的。

谢谢你的帮助博士,我欠你一杯啤酒!

【讨论】:

  • 你能做的下一个最好的事情就是接受博士的回答,这样这篇文章就不会被删除,他们的努力也会得到一些分数 =)
【解决方案2】:

您没有任何名称为__main__。这是neither a module __main__.pynor a function in __init__.py。相反,您有 a module cli.pyfunction main()。所以试试这个:

entry_points={
    'console_scripts': [
        'shenko = shenko.cli:main',
    ],
},

【讨论】:

  • 我不想使用 'click' 我只是想直接从 'shenko.py' 运行 main 所以我需要将 main 添加到 init.py 也许?不管怎样,我认为你让我回到了正轨,感谢@phd 的帮助。
  • @DannyDowshenko 然后是'shenko = shenko.shenko:main',
  • 重新尝试你的建议,如果失败并出现同样的错误,然后我认为这是我的 init 文件,所以我修改了它并得到了一个稍微不同的错误;
  • 回溯(最近一次调用最后):文件“/home/shenko/.local/bin/shenko”,第 5 行,在 from shenko.shenko import main File "/home/shenko /.local/lib/python3.8/site-packages/shenko/__init__.py",第 9 行,在 from shenko import main ImportError: cannot import name 'main' from partial initialized module 'shenko'(很可能由于循环导入)(/home/shenko/.local/lib/python3.8/site-packages/shenko/__init__.py)
  • 我的 setup.py "packages=find_packages(include=['shenko'," 的第 39 行是什么使它成为循环导入????我将尝试删除它以查看什么发生。
猜你喜欢
  • 1970-01-01
  • 2018-09-04
  • 2020-06-26
  • 1970-01-01
  • 2022-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多