Python & 设置工具 - 'No module named...'
Python & setuptools - 'No module named...'
我正在尝试打包我在 Python 中编写的应用程序,并使用带有 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 中编写的应用程序,并使用带有 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
命名为父包。如果您使用绝对导入,这可能是个问题。