ImportError:无法导入名称RAND_egd
我试图使用py2exe创建一个exe文件。我最近将Python从2.7.7更新到2.7.10,以便可以使用requests
- proxies
。
在更新之前,一切正常,但现在,最近创建了exe文件,引发了此错误:
Traceback (most recent call last): File "puoka_2.py", line 1, in <module>
import mLib
File "mLib.pyc", line 4, in <module>
File "urllib2.pyc", line 94, in <module
File "httplib.pyc", line 71, in <module
File "socket.pyc", line 68, in <module>
ImportError: cannot import name RAND_egd
可以通过更改options
setup.py文件来修复它,但是我不知道该写些什么。我已经尝试过,options = {'py2exe':
{'packages': ['requests','urllib2']}})但是没有成功。
它可以用作Python脚本,但不能作为exe。
有人知道该怎么办吗?
编辑:
我已尝试setup.py
将此导入文件化:from _ssl import RAND_egd
它说它不能导入。
EDIT2:Setup.py:
from distutils.core import setupimport py2exe
# from _ssl import RAND_egd
setup(
console=['puoka_2.py'],
options = {'py2exe': {'packages': ['requests']}})
回答:
根据Google的说法,这似乎是非常罕见的错误。我不知道到底是什么问题,但我找到了 ,所以如果有人遇到此问题,也许此答案会有所帮助。
转到socket.py
文件并搜索RAND_egd
。有一段代码(在我的情况下是第67行):
from _ssl import SSLError as sslerrorfrom _ssl import \
RAND_add, \
RAND_status, \
SSL_ERROR_ZERO_RETURN, \
SSL_ERROR_WANT_READ, \
SSL_ERROR_WANT_WRITE, \
SSL_ERROR_WANT_X509_LOOKUP, \
SSL_ERROR_SYSCALL, \
SSL_ERROR_SSL, \
SSL_ERROR_WANT_CONNECT, \
SSL_ERROR_EOF, \
SSL_ERROR_INVALID_ERROR_CODE
try:
from _ssl import RAND_egd
except ImportError:
# LibreSSL does not provide RAND_egd
pass
您要做的所有事情都是对5行进行注释:
#try: #from _ssl import RAND_egd
#except ImportError:
## LibreSSL does not provide RAND_egd
#pass
我不知道为什么会引发,ImportError
因为有一个try -
except带有的块,pass
所以不应引发该错误,但它帮助我成功运行了exe
文件。
编辑:警告:我不知道它是否会引起一些问题。我还没有遇到任何问题。
以上是 ImportError:无法导入名称RAND_egd 的全部内容, 来源链接: utcz.com/qa/401268.html