【问题标题】:Python py2exe "IOError...unknown url type: https" issuePython py2exe“IOError ...未知的url类型:https”问题
【发布时间】:2017-07-03 05:23:53
【问题描述】:

所以我的Web Scrapper 在使用 IDLE/Python 运行时可以正常工作,但是当我将其编译为单个 .exe 文件(使用 py2exe)时,它会引发 IOError

使用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 的引用,这可能是问题所在?

有什么想法、解决方案...?

【问题讨论】:

  • 能否再次编译并粘贴给出的错误?您还可以尝试使用另一个编译器 - fx pyinstaller。您可以从命令提示符中进行编译(并且假设您在 pyinstaller 所在的位置): pyinstaller --onefile path_to_file_that_needs_compiling
  • @jlaur 嘿,刚刚使用了 PyInstaller,由于某种原因它现在可以工作了。所有其他编译器都失败了,但那个工作......奇怪......

标签: windows python-2.7 https exe py2exe


【解决方案1】:

你能检查一下你的Windows机器上是否安装了openssl吗? openssl 是一个开源密码库,大多数 *nix 系统都在使用它。我相信 requests 和 urllib 使用相同的底层库。

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

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

【讨论】:

  • 是的,它已安装。我什至修改了 setup.py 以包含它,并将其导入到主程序中。
【解决方案2】:

试试这个 设置“skip_archive”:真,“无缓冲”:真

setup(
      version = "1.0",            
      name = "MyApplication",
      url = "http://www.example.com",
      author = "yourname",
      author_email = "yourname@gmail.com",
      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-packages 之类的位置找到额外安装的模块,在D:\Python\Lib 中找到大部分python 自己的模块

【讨论】:

  • 首先,我不知道我错过了什么或在哪里可以找到它们。因为有 30 个模块“缺失”
猜你喜欢
  • 2015-09-14
  • 2015-01-22
  • 2019-07-22
  • 2015-04-07
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 2015-09-04
  • 2020-03-26
相关资源
最近更新 更多