【问题标题】:setup.py: No module named *setup.py: 没有名为 * 的模块
【发布时间】:2018-04-11 03:54:36
【问题描述】:

我正在尝试开发一个新的 Python 模块。这是我的目录结构的样子:

.
├── cmd_dispatcher.py
├── commands
│   ├── __init__.py
│   └── validate.py
├── hello.py
├── README.md
├── setup.py
└── utils
    └── __init__.py

这是setup.py

from setuptools import setup

setup(
    name='abc',
    version='1.0',
    install_requires=[
        'Click',
    ],
    entry_points='''
        [console_scripts]
        tdrivecli=cmd_dispatcher:mycli
    ''',
)

cmd_dispatcher.py 具有执行 from commands.validate import validate_something 的代码

当我使用pip install --editable . 安装这个包时 并运行$ mycli 我明白了

  File "cmd_dispatcher.py", line 3, in <module>
    from commands.validate import validate_cst
ImportError: No module named validate

我错过了什么?

【问题讨论】:

  • 可以尝试使用 init.py 将 cmd_dispatcher.py 和 commands/ 移动到 src/ 中,以使您的代码成为一个单独的包

标签: python python-2.7 pip setup.py python-packaging


【解决方案1】:

commands 是 Python 2.7 (https://docs.python.org/2/library/commands.html) 中的一个模块,因此您的包可能会与它发生冲突。确保您没有在 cmd_dispatcher 中启用绝对导入,它确实可以找到您的包。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2017-12-30
    • 2018-01-06
    • 2018-11-11
    • 2015-04-10
    • 2013-11-27
    相关资源
    最近更新 更多