我使用的是Python3.3,并且安装了一个名为python-bidi的包,可以在 here 找到它。
我已通过运行:python setup.py install
安装了该软件包,这是软件包文档中的说明。
现在我正在运行使用该包的代码,但出现此错误:
File "C:\Python33\lib\site-packages\python_bidi-0.3.4-py3.3.egg\bidi\algorithm.py", line 24, in <module>
from mirror import MIRRORED
ImportError: No module named 'mirror'
但是,查看此文件夹:C:\Python33\lib\site-packages\python_bidi-0.3.4-py3.3.egg\bidi
我可以看到有一个名为mirror.py
。
我收到错误的原因是什么?
感谢您对此提供的任何帮助。
最佳答案
在Python 2.7中,您可以执行import bidi.algorithm
,但在Python 3.3中会失败。实际上,它来自于模块导入方式的改变。请注意,python-bidi 库的最后一次更新是在 2010 年。
参见PEP 328 ,它也可以追溯到 2010 年。此 PEP 解决了以下问题:“导入在包面前可能不明确;在包内,不清楚 import foo 是指包内的模块还是包外的某个模块包。(更准确地说,本地模块或包可以隐藏另一个直接卡在 sys.path 上的模块或包。)”
使用 Python 3.x 中使用的新符号,您可以在“bidi/algorithm.py”中编写 from .mirror import MIRRORED
而不是 frommirror import镜像
。注意这个点!
导入可以工作,但由于其他不兼容性,模块 bidi.algorithm 仍然无法加载。也就是说,在某个点 X2_X5_MAPPINGS.keys() + ['BN', 'PDF', 'B']
会失败,因为 dict.keys()
确实不再返回列表,而是返回“dict_keys”对象。
因此,您将无法在 Python 3.x 中使用此包,除非您愿意做一些工作来解决不兼容性。
顺便说一句,Python 2.7 也可以理解新的符号 from .mirror import MIRRORED
,因此应该可以使 python-bidi 与 Python 2.x 和 Python 2.x 兼容。 3.x 行。
关于python - 导入错误:没有名为 'mirror' 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20853419/