python - Python3 ImportError:尝试在没有已知父包的情况下进行相对导入
问题描述
我有以下 3 个 python 文件:
main.py
from .Constants import *
__init__.py
Constants.py
:
CONSTANT_TEST = test
现在,当我运行时python3 main.py
,出现以下错误
ImportError: attempted relative import with no known parent package
不知道我在这里缺少什么。
解决方案
一般的经验法则是你永远不应该从同一个包中执行文件。我的建议是创建一个测试文件并将您的包导入该文件,然后从该文件中进行所有测试。例如,如果您的包目录如下所示:
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)
推荐阅读
- html - 即使为 vue.js 设置了规则,也会在循环中调用许多 axios
- c++ - 当帧中有蓝色时,图像处理失败。可能是什么原因?
- c# - 如何使用 linq 用逗号和冒号分隔字符串?
- typescript - typescript 可选的索引器类型,返回相同的类型
- javascript - Javascript对象数组未显示在反应js中使用地图的预期值
- spring - 通过弹簧数据和 f:viewAction 加载实体然后访问其属性之一时出现延迟加载异常
- javascript - 多个选择的复选框下拉列表,由 ;
- python-3.x - 如何从 Python 中的列表中非均匀采样
- java - 两个数组的插入排序
- jenkins - 通过jenkins执行时找不到ansible-playbook