Python 和设置工具 - 'No module named...'

标签 python setuptools

我正在尝试打包我用 Python 编写的应用程序,并使用 setuptools 和 find_packages 来执行此操作。如果我运行 python setup.py develop(或 install),我会得到一个 ImportError:

Traceback (most recent call last):
  File "c:\Python34\Scripts\jiragen-script.py", line 9, in <module>
    load_entry_point('jiragen==1.0', 'console_scripts', 'jiragen')()
  File "x:\jira\jiragen\jiragen\main.py", line 8, in main
    import jira_parser, worklogs, exporter
ImportError: No module named 'jira_parser'

jira_parser.py、worklogs.py 和 exporter.py 都与 main.py 位于同一目录中。这是我的 setup.py:

from setuptools import setup, find_packages

setup(
        name='jiragen',
        version='1.0',
        packages = find_packages(),
        py_modules = [
            'jiragen.main', 
            'jiragen.jira_parser'
            ],
        install_requires=[
            'PyYAML',
            'XlsxWriter',
            'jsonpickle',
            'requests'
            ],
        entry_points={
            'console_scripts': [
                'jiragen = jiragen.main:main'
                ]
            }
        )

请注意,我明确地将项目添加到 py_modules 以查看这是否会有所不同 - 但 python 仍然提示它找不到 jira_parser。完全相同的错误只有 find_packages 而没有 py_modules。我也尝试过明确添加包。

我的目录结构如下:

jiragen
|--setup.py
|--jiragen/
|--|--__init__.py
|--|--__main__.py
|--|--main.py
|--|--jira_parser.py
|--|--worklogs.py
|--|--exporter.py
|--|--excel/
|--|--|--__init__.py
|--|--|--(other .py files..)

我在这里错过了什么?

编辑

已解决 - 需要将 'console_scripts' 中的目标从 jiragen.main:main 更改为 jiragen:main,并添加行 package_dir = {'': 'jiragen'}

最佳答案

您将模块 jiragen.py 命名为父包。如果您使用绝对导入,这可能是个问题。

关于Python 和设置工具 - 'No module named...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28197908/

相关文章:

python - 经过多次尝试后,我无法使用 Shutil.move 将文件从一个文件夹移动到另一个文件夹

python-3.x - 在 setup.py 中找出这个包是从哪个存储库安装的?

python - 如何在 Python egg 中分发/访问数据文件?

python - Python中的 self 变量与类变量

python - 将数据分配给单独的数据框,按年份组合和排序

python - 比较将 numpy 数组写入磁盘的两种方法

python - 如何在pygame中的图片背景上画线

python - 添加 [别名] 失败,错误为 : invalid command 'xyz'

python - 如何为python包创建嵌套包空间?

python - 如何修复 "error: error in setup.cfg: command ' bdist_wheel' 没有这样的选项 'universal' "