2015-09-06 74 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

我可能理解它,謝謝 –

相關問題