在使用python-socketio中,出现“KeyError: ‘CONDA_PREFIX‘错误

问题

在python安装python-socketio的过程是很顺畅的,但是一旦使用,就面临了一个大难题,错误代码如下:

Traceback (most recent call last):
  File "/home/***/workspace/python/SecurityModel/socket/temp/server.py", line 1, in <module>
    import eventlet
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/eventlet/__init__.py", line 10, in <module>
    from eventlet import convenience
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/eventlet/convenience.py", line 7, in <module>
    from eventlet.green import socket
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/eventlet/green/socket.py", line 21, in <module>
    from eventlet.support import greendns
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/eventlet/support/greendns.py", line 64, in <module>
    setattr(dns, pkg, import_patched('dns.' + pkg))
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/eventlet/support/greendns.py", line 59, in import_patched
    return patcher.import_patched(module_name, **modules)
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/eventlet/patcher.py", line 126, in import_patched
    *additional_modules + tuple(kw_additional_modules.items()))
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/eventlet/patcher.py", line 100, in inject
    module = __import__(module_name, {}, {}, module_name.split('.')[:-1])
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/dns/dnssec.py", line 483, in <module>
    from Crypto.PublicKey import RSA as CryptoRSA, DSA as CryptoDSA
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/Crypto/PublicKey/RSA.py", line 42, in <module>
    from Crypto.Math.Numbers import Integer
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/Crypto/Math/Numbers.py", line 34, in <module>
    from Crypto.Math._IntegerGMP import IntegerGMP as Integer
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/Crypto/Math/_IntegerGMP.py", line 95, in <module>
    lib = load_lib("gmp", gmp_defs)
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/site-packages/Crypto/Util/_raw_api.py", line 186, in load_lib
    full_name = os.path.join(os.environ['CONDA_PREFIX'], 'lib', _name)
  File "/home/***/anaconda2/envs/tensorflow-gpu/lib/python3.6/os.py", line 669, in __getitem__
    raise KeyError(key) from None
KeyError: 'CONDA_PREFIX'

叭要说都2020了,咋还有人用anaconda2,服务器上还有老的代码,环境不能删除。
以上错误在博客上都没找到解决方案。所以,机智如我,花了两个小时又重新搭了一遍环境。然后在搭建新环境的过程中,发现了很有趣的事情。

可能是系统不同,所以linux是source activate env-name,win下有的是activate env-name,但是有些是conda activate env-name 。然后在安装python-socket的过程中,会有一些相关包要安装,
在使用python-socketio中,出现“KeyError: ‘CONDA_PREFIX‘错误_第1张图片
正常情况下安装socketio可能莫得问题,但是出现问题就很头疼辽。你得把这些包补上。

万能方法就是把原来环境里的python-socketio删除,然后重开一个环境安装。目前暂时验证到这,欢迎大佬们过来踢馆子指正。

你可能感兴趣的:(随便瞎搞)