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

可以通过更改optionssetup.py文件来修复它,但是我不知道该写些什么。我已经尝试过,options = {'py2exe':

{'packages': ['requests','urllib2']}})但是没有成功。

它可以用作Python脚本,但不能作为exe。

有人知道该怎么办吗?

编辑:

我已尝试setup.py将此导入文件化:from _ssl import RAND_egd 它说它不能导入。

EDIT2:Setup.py:

from distutils.core import setup

import 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 sslerror

from _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

回到顶部