2017-03-16 148 views
1

出於某種原因,我得到試圖導入gevent我的搬運工容器內,當這個錯誤:導入錯誤:無法導入名稱_NONE

# python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import gevent 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/gevent/__init__.py", line 51, in <module> 
    from gevent.hub import get_hub, iwait, wait 
    File "/usr/local/lib/python2.7/dist-packages/gevent/hub.py", line 31, in <module> 
    from gevent._util import _NONE 
ImportError: cannot import name _NONE 
>>> 

這是奇怪的,因爲_util.py存在,它在dist-packages/gevent目錄。當我在另一個系統上執行pip install時,它工作正常。

任何人有任何想法可能會發生什麼?

回答

1

您是否最近升級了gevent軟件包,或者是否安裝了舊版本? 我跑了pip install --ignore-installed gevent在我的virtualenv中更新這個軟件包的舊版本,然後這個錯誤開始出現。

pip uninstall gevent固定它(兩次完全除去的話),隨後pip install gevent

0

我想你導入gevnet這個模塊是不是你看到它。 你可以打印你的東西_util.py模塊。 如果沒有打印,我猜"/usr/local/lib/python2.7/dist-packages/gevent/hub.py"導入_util不在/usr/local/lib/python2.7/dist-packages/gevnet,你可以嘗試打印sys.path來找到真正的導入路徑並修復它。


在我的方法:

    1. 卸載GEVENT。
  • 使用另一系統gevnet或的virtualenv包,複製到你真實(我想你有像 '的/ usr /本地/ lib64下' 一個ENV路徑)
    1. exec python -c 'import gevent' test is ok。
相關問題