我正在尝试在 Jupyter(在 Windows 10 上)中导入模块,但它不起作用:
import alyn
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-8-8e9535ea4303> in <module>()
----> 1 import alyn
~\Anaconda3\envs\tracx\lib\site-packages\alyn\__init__.py in <module>()
1 """ Import required modules"""
----> 2 from deskew import *
3 from skew_detect import *
ImportError: No module named 'deskew'
我不太明白为什么,因为有问题的包有一个正确的 init.py 文件:
其内容是:
""" Import required modules"""
from deskew import *
from skew_detect import *
我错过了什么?
好吧,我已经弄清楚了!
事实证明,我尝试导入的包是用 Python 2 编写的,其初始化文件使用的是 relative import 机制。但是,我正在使用 Python 3,并且不再支持相对导入。通过添加 .init 文件,可以使 init 文件在 Python 3 中工作。两行都这样:
""" Import required modules"""
from .deskew import *
from .skew_detect import *
我认为这应该向后兼容Python 2。