ImportError:无法导入名称_NONE

时间:2017-03-16 18:25:35

标签: python gevent

由于某些原因,我在我的泊坞窗容器中导入gevent时遇到此错误:

# 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时,它运行正常。

任何人都有任何想法可能会发生什么?

2 个答案:

答案 0 :(得分:1)

您最近是否升级了gevent软件包,还是将其安装在旧版本上? 我在virtualenv中运行pip install --ignore-installed gevent来更新此软件包的旧版本,然后此错误开始出现。

我用pip uninstall gevent修改了它(两次完全删除它),然后是pip install gevent

答案 1 :(得分: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. uninstall gevent。
    1. 使用另一个系统gevnet或virtualenv包,并真实地复制给你(我猜你有一个像'/ usr / local / lib64'这样的env路径)
    1. exec python -c 'import gevent'测试没问题。