我使用的是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
的文件。
我得到错误的原因是什么?
谢谢你的帮助。在
唯一剩下的事情是通过在
X2_X5_MAPPINGS.keys()
和X2_X5_MAPPINGS.keys()
周围添加list来更改第41行和第42行:以及
^{pr2}$并将第600行改为:
到
在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行。在相关问题 更多 >
编程相关推荐