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

PyInstaller生成的可执行文件中的Python SSL导入错误,python,pyinstaller,Python,Pyinstaller,我正在尝试分发我创建的Python程序的可执行文件。 为此,我正在使用 我将Windows7 Professional与Python 3.7结合使用 程序在PyCharm中运行成功并产生预期结果 如PyInstaller手册所述,我创建了dist文件夹,其中包括: pyinstaller main.py 日志输出指定进程已成功完成 尝试从分发文件夹运行main.exe时,会产生以下错误: Traceback (most recent call last): File "site-packa

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

我将Windows7 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
回溯(最近一次呼叫最后一次):
文件“site packages\PyInstaller\loader\rthooks\pyi_rth_certifi.py”,第11行,i
N
文件“c:\users\tim\anaconda3\envs\timf2\u 37\lib\site packages\PyInstaller\load
er\pyimod03_importers.py”,第627行,在exec_模块中
exec(字节码、模块、指令)
文件“ssl.py”,第98行,在
ImportError:DLL加载失败:找不到指定的过程。
[6236]无法执行脚本pyi\u rth\u certifi

所以几个小时后,我设法解决了这个问题。 我做了几件事,但仍然不确定实际修复的是什么,但这是我所做的一步一步的流程:

  • 使用Anaconda创建了一个新环境。我已经将Python版本降级到3.6.8,因为我看到有人提到Python 3.7的几个兼容性问题
  • 使用Anaconda安装了我项目中的所有需求,因为有些人提到了由于混合使用
    pip
    conda
    而导致的问题
  • 已安装最新版本的
    pyinstaller
  • 激活新环境,并使用
    --hidden import pyodbc
    参数在程序的
    main.py
    脚本上从其中运行
    pyinstaller

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

    能否在ssl.py中共享您的所有导入包名称script@shubham,我在分发文件夹中没有看到
    ssl.py
    文件,有一个
    \u ssl.pyd
    只有一个。你能告诉我你导入main.pyI的包是什么吗使用:
    sqlalchemy,pandas,datetime,smtplib
    使用pyinstaller 3.4,我想它可能会帮助你谢谢,我在3.7.4中有同样的问题,在3.6.10中解决了,还有另一个意想不到的惊喜,使用3.7.4生成的exe大小为80+MB,而使用3.6.10生成的exe大小为30+MB