2015-09-06 123 views
2

我画中画 “opencc”导入错误:没有模块名为 '版本'

当我外壳下面

import opencc 

代码它显示

Traceback (most recent call last): 
File "<pyshell#0>", line 1, in <module> 
import opencc 
File "C:\Python34\lib\site-packages\opencc\__init__.py", line 6, in <module> 
from version import __version__ 
ImportError: No module named 'version' 

而是 “____的init __ PY” 和“version.py”在同一目录中 C:\ Python34 \ lib \ site-packages \ opencc

opencc 
    |----__init__.py 
    |----version.py 

文件:version.py

__version__ = '0.1' 

当我改变

from version import __version__ 

__version__ = '0.1' 

opencc,它的工作原理

我知道这不会使大差异,但我只想知道为什么init.py无法导入模块version.py在相同的目录,

回答

5

opencc模块不与Python 3.兼容它目前只能关于Python 2.

具体地使用的,version模块是opencc包的一部分,但在Python 3你需要使用绝对导入,from opencc.version import __version__from .version import __version__。代码也会有其他问题。

+0

谢谢。这意味着_init__.py导入模块就像sys.path一样,但不能将模块导入当前路径中?当我打开__init__.py并运行它时,导入可以起作用 –

+0

@ fBigBro:这意味着在Python 2中的导入从查看当前包开始,这意味着无意中屏蔽全局安装的库非常容易。如果你假装'opencc'包的内容是全局安装的模块(通过将它添加到'sys.path'中或者直接运行'__init __。py',那么是的,它可以工作,但这并不意味着库可以工作整个项目必须移植到Python 3,除非你有经验做这样的端口,否则我会*不*尝试自己做。 –

+0

我可能理解它,谢谢 –

相关问题