2017-03-16 116 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。
相关问题