首页 > 解决方案 > Python3 ImportError:尝试在没有已知父包的情况下进行相对导入

问题描述

我有以下 3 个 python 文件:

from .Constants import *
CONSTANT_TEST = test

现在,当我运行时python3 main.py,出现以下错误

ImportError: attempted relative import with no known parent package

不知道我在这里缺少什么。

标签: pythonpython-3.x

解决方案


一般的经验法则是你永远不应该从同一个包中执行文件。我的建议是创建一个测试文件并将您的包导入该文件,然后从该文件中进行所有测试。例如,如果您的包目录如下所示:

package_tests.py

package/
    __init__.py
    main.py
    Constants.py

package/__init__.py

from package.Constants import CONSTANT_TEST

# import everything here that you want users to be able to access by topmost import ("import package")

package/Constants.py

CONSTANT_TEST = "constant"

package/main.py

from package.Constants import CONSTANT_TEST

# other code that utilizes CONSTANT_TEST

package_tests.py

import package

print(package.CONSTANT_TEST)

推荐阅读