PyInstaller生成的可执行文件中的Python SSL导入错误

时间:2019-07-29 12:02:00

标签: python pyinstaller

我正在尝试分发已创建的Python程序的可执行文件。 为此,我使用PyInstaller

我将Windows 7 Professional与Python 3.7一起使用 该程序在PyCharm中成功运行并产生预期结果。

如PyInstaller手册中所述,我使用以下方法创建了dist文件夹:

pyinstaller main.py

日志输出表明该过程成功完成。

尝试从分发文件夹运行main.exe时,会产生以下错误:

Traceback (most recent call last):
  File "site-packages\PyInstaller\loader\rthooks\pyi_rth_certifi.py", line 11, i
n <module>
  File "c:\users\tim\anaconda3\envs\timtf2_37\lib\site-packages\PyInstaller\load
er\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "ssl.py", line 98, in <module>
ImportError: DLL load failed: The specified procedure could not be found.
[6236] Failed to execute script pyi_rth_certifi

1 个答案:

答案 0 :(得分:0)

所以几个小时后,我设法解决了这个问题。 我做了几件事,仍然不确定到底是什么,但这是我完成的分步流程:

  1. 使用Anaconda创建了一个新环境。我已将Python版本降级为3.6.8,因为我看到提到了与Python 3.7的一些兼容性问题
  2. 使用Anaconda安装了我项目中的所有要求,因为有些提到由于pipconda的混合使用而引起的问题。
  3. 安装了最新版本的pyinstaller
  4. 激活新环境,并在其中使用pyinstaller自变量在程序的main.py脚本上运行--hidden-import pyodbc

就是这样,现在已发布的程序可以在办公室的所有Windows计算机上运行。