在使用 Python 3.2 导入我的 code_parsing
包时出现错误。
目录 code_parsing
位于 PYTHONPATH
中,包含以下文件(还有一些其他文件,但与此处无关)
code_parsing/__init__.py
code_parsing/ada.py
__init__.py
包含:
from ada import *
导入我的模块时出现此错误:
>>> import code_parsing
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "K:\CODE\pythonlib\code_parsing\__init__.py", line 1, in <module>
from ada import *
ImportError: No module named ada
在具有相同环境的同一台机器上使用 python 2.7,它工作正常。
一些精度:
- 使用相同的
directory/__init__.py
结构在同一目录中导入的其他文件工作正常。 ada.py
是一个纯 python 文件,没有特殊的编译/cython/.pyd 东西。
有什么想法吗?
最佳答案
Python 3 使用绝对导入。任何非限定名称都将作为顶级模块导入。
您没有顶级 ada
模块。你有一个 code_parsing.ada
模块,所以以下将起作用:
from code_parsing.ada import *
或使用明确的“本地包”引用:
from .ada import *
您可以在 Python 2 中强制执行相同的行为:
from __future__ import absolute_import
关于python - python 3 上的 ImportError,在 python 2.7 上运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38564382/