2017-07-03 48 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程序中。 –