Mil*_*ano 13 python import ssl executable py2exe
我试图使用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
Run Code Online (Sandbox Code Playgroud)
它可能可以通过更改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']}})
Run Code Online (Sandbox Code Playgroud)
Mil*_*ano 15
据谷歌称,这似乎是一个非常罕见的错误.我不确切地知道出了什么问题,但我找到了一个解决方法,所以如果有人遇到这个问题,也许这个答案会有所帮助.
转到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
Run Code Online (Sandbox Code Playgroud)
你需要做的就是评论5行:
#try:
#from _ssl import RAND_egd
#except ImportError:
## LibreSSL does not provide RAND_egd
#pass
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它会引发ImportError因为有一个try - except块pass所以不应该提出错误但它帮助我成功运行该exe文件.
编辑:警告:我不知道它是否会导致一些问题.我没有遇到任何问题.
| 归档时间: |
|
| 查看次数: |
8093 次 |
| 最近记录: |