Python& setuptools - '没有命名的模块......'

时间:2015-01-28 16:54:05

标签: python setuptools

我正在尝试打包我用Python编写的应用程序,并且正在使用带有find_packages的setuptools来执行此操作。如果我运行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'}

1 个答案:

答案 0 :(得分:3)

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