2017-07-03 72 views
3

所以我的Web Scrapper在IDLE/Python下运行正常,但是当我将它编译成一个.exe文件(使用py2exe)时,会引发一个IOErrorPython py2exe“IOError ... unknown url type:https”问题

当使用urllib模块:

IOError: [Errno url error] unknown url type: 'https' 

当使用requests模块:

requests.exceptions.SSLError: Can't connect to HTTPS URL because the SSL module is not available. 

我也注意到,与py2exe编译时,它在最后说了几个“模块似乎丢失“,其中包括OpenSSL.SSL,以及urllib的几处引用,这可能是问题所在?

任何想法,解决方案...?

+0

你能再次编译它并粘贴给出的错误吗?你也可以给另一个编译器一个try - fx pyinstaller。你可以像命令promt那样进行编译(并且在pyinstaller驻留的地方):pyinstaller --onefile path_to_file_that_needs_compiling – jlaur

+0

@jlaur嘿,刚刚使用了PyInstaller,并且因为某种原因它现在可以工作。所有其他编译器都失败了,但那个工作...奇怪... –

回答

1

尝试了这一点 集“skip_archive”:是的,“缓冲”:真

setup(
     version = "1.0",    
     name = "MyApplication", 
     url = "http://www.example.com", 
     author = "yourname", 
     author_email = "[email protected]", 
     license = "https://www.binpress.com/license/", 
     copyright = 'Copyright (c) 2017 MyApplication', 
     windows=[{'script': "yourfile.py","icon_resources": [(0, "youricon.ico")],'copyright': "Copyright (c) 2017 MyApplication"}] ,options={'py2exe':{"skip_archive": True,"unbuffered": True,'packages':['Tkinter','PIL','sip','pyavrophonetic','speech_recognition','simplejson','tkSimpleDialog','tkFileDialog','io','tkMessageBox','Tkconstants','random','pyaudio','os','wave','pocketsphinx','sphinxbase','pyttsx']}} 
    ) 
#name your reqired modules 

然后小心地复制粘贴文件所说的手动失踪dist目录和其他文件在各自的目录下,你可以在模块下找到一些文件丢失。然后使用Inno Setup为您的exe文件创建一个安装程序。希望这可以帮助。 编辑 你能找到额外的安装位置的模块,如D:\Python\Lib\site-packagesD:\Python\Lib

+0

那么首先,我不知道我失踪了什么或在哪里可以找到它们。因为有30个模块“缺失” –

1

大部分Python的模块,可以检查您是否已经安装在你的Windows机器上opensslopenssl是大多数* nix系统使用的开源加密库。我相信请求和urllib使用相同的底层库。

一旦你解决这个问题,然后编译,我希望错误消失。

注意:我不完全熟悉如何操作,我没有Windows机器来测试我通过Google搜索找到的一些文章。

+0

是的,它已安装。我甚至修改了setup.py以包含它,并将其导入到Main程序中。 –