在setup.py之后,Python 3绝对导入无法正常工作

时间:2015-04-28 05:42:51

标签: python python-3.x import

我想发布一个Python 3项目。结构如下:

README.rst
setup.cfg
setup.py
projectname
├── __init__.py
├── __main__.py
├── file1.py
└── file2.py

在我的setup.py中,我有通常的信息(名称,描述等),两条相关的行是:

packages=find_packages(),
entry_points={
    'console_scripts': [
        'project-name=projectname.__main__:main',
    ],
},

在我的__main__.py中,我执行以下导入:

from file1 import a
from file2 import b

我的项目在终端正常运行__main__.py时工作正常:

python3 __main__.py

但是,运行setup.py后:

sudo python3 setup.py install

并且正在运行:

project-name

我收到以下错误:

ImportError: No module named 'file1'

奇怪的是,如果我做了明确的相对导入:

from .file1 import a
from .file2 import b

这适用于已安装的软件包,但在终端正常运行__main__.py时不会出现以下错误:

SystemError: Parent module '' not loaded, cannot perform relative import

我完全迷失在这里,任何人都可以解雇一下吗?我一直在阅读Python 3中的导入,但还没有任何帮助。任何帮助将非常感激。如果需要补充信息,请告诉我。谢谢!

0 个答案:

没有答案