重要错误:没有名为“镜像”的模块

2024-10-01 02:20:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Python3.3,并安装了一个名为pythonbidi的包,可以在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的文件。 我得到错误的原因是什么? 谢谢你的帮助。在


Tags: installpyhereeggmirrorlibpackages错误
2条回答

唯一剩下的事情是通过在X2_X5_MAPPINGS.keys()X2_X5_MAPPINGS.keys()周围添加list来更改第41行和第42行:

list(X2_X5_MAPPINGS.keys())

以及

^{pr2}$

并将第600行改为:

if isinstance(unicode_or_str, unicode)

if isinstance(unicode_or_str, str): 

在Python2.7中,可以执行import bidi.algorithm,但在Python3.3中会失败。实际上,它来自于模块导入方式的改变。请注意,python bidi库上次更新是在2010年。在

参见PEP 328,它也可以追溯到2010年。此PEP解决了以下问题:“在包中导入可能不明确;在包中,不清楚import foo是指包内的模块还是包外的某个模块。(更准确地说,本地模块或包可以直接隐藏另一个挂起的模块或包搜索路径“

使用Python3.x中使用的新符号,您可以用“bidi”编写/算法.py“,from .mirror import MIRRORED而不是from mirror import MIRRORED。注意这个点!在

导入可以工作,但是模块比迪算法仍然无法加载,因为其他不兼容。也就是说,在某个时刻,X2_X5_MAPPINGS.keys() + ['BN', 'PDF', 'B']失败了,因为dict.keys()不再返回列表,而是返回一个“dict_keys”对象。在

因此,除非您愿意做一些工作来解决不兼容问题,否则您将无法在python3.x中使用这个包。在

另外,Python2.7也可以理解新的符号from .mirror import MIRRORED,因此应该可以使Python bidi同时兼容python2.x和3.x行。在

相关问题 更多 >