首页 > 解决方案 > 在 setup.py 中更新命令名称后,模块导入失败

问题描述

起初

Project
|-setup.py
|-src
    |-project
        |-__init__.py
        |-cli.py
...

entry_points="""\ 
[console_scripts] 
cli.py = project.cli:main 
""",
...

我对代码所做的唯一更改是更新了控制台脚本。我将 cli.py 命令重命名为 project_cli.py,因为进行此更改后,我收到了Traceback错误,如下所示。

改变了

...

entry_points="""\ 
[console_scripts] 
project_cli.py = project.cli:main 
""",
...

错误

Traceback (most recent call last):
  File "./project_cli.py", line 11, in <module>
    load_entry_point('Project==1.0', 'console_scripts', 'project_cli.py')()
  File "/Users/myusername/project/lib/python2.7/site-packages/pkg_resources/__init__.py", line 487, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/Users/myusername/project/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2728, in load_entry_point
    return ep.load()
  File "/Users/myusername/project/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2346, in load
    return self.resolve()
  File "/Users/myusername/project/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2352, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ImportError: No module named project.cli

类似的问题为什么在 setuptools entry_point 脚本中导入失败,但在 python 解释器中却没有?- 堆栈溢出<= 这并没有解决我的问题。

我尝试更新路径,而不是project.cli:main它,src.project.cli:main但这仍然失败 我尝试将文件重命名为cli.pyproject_cli 但这仍然失败

Project
|-setup.py
|-src
    |-project
        |-__init__.py
        |-project_cli.py
...

entry_points="""\ 
[console_scripts] 
project_cli.py = project.project_cli:main 
""",
...

任何解决此错误的帮助将不胜感激。

标签: pythonpython-2.7setuptools

解决方案


推荐阅读