python 3 的导入问题
Importing issue with python 3
我有一个代码 运行s 在 Python 2.7 但不在 3.5 中,我找不到原因。跟导入有关。
根文件夹有一个名为 s
的子文件夹。在根文件夹中,我正在 运行 宁脚本 a.py
其中包括行 from s import *
.
在文件夹 s
中,有一个名为 b.py
的文件,其中包含导入行:from c import c
它试图导入保存在 c.py
中的 class,它也位于子文件夹 s
中。
当我从根文件夹 运行 脚本 a.py
时,我得到 ImportError
说 "No module named c
"。
在 Python 2.7 这个 运行 没有问题。有人可以建议可能是什么问题以及如何在 Python 3.5 中以不同的方式完成此操作吗?
包内的隐式导入不适用于 Python 3,因此要使其正常工作,您需要使用显式相对导入:
from .s import *
这应该适用于 Python 2 和 Python 3。这也使您的意图更加明确,您希望从相关包而不是已安装的包中导入。
我有一个代码 运行s 在 Python 2.7 但不在 3.5 中,我找不到原因。跟导入有关。
根文件夹有一个名为 s
的子文件夹。在根文件夹中,我正在 运行 宁脚本 a.py
其中包括行 from s import *
.
在文件夹 s
中,有一个名为 b.py
的文件,其中包含导入行:from c import c
它试图导入保存在 c.py
中的 class,它也位于子文件夹 s
中。
当我从根文件夹 运行 脚本 a.py
时,我得到 ImportError
说 "No module named c
"。
在 Python 2.7 这个 运行 没有问题。有人可以建议可能是什么问题以及如何在 Python 3.5 中以不同的方式完成此操作吗?
包内的隐式导入不适用于 Python 3,因此要使其正常工作,您需要使用显式相对导入:
from .s import *
这应该适用于 Python 2 和 Python 3。这也使您的意图更加明确,您希望从相关包而不是已安装的包中导入。