小编sno*_*odo的帖子

py2exe MemoryLoadLibrary 加载 _ssl.pyd 失败,Win7<->Win10

介绍

我有一个使用 SSL 的脚本,并使用 py2exe 构建(bundle_files=1,将所有内容打包到 *.exe 中)

现在我遇到了这个问题

在 Win7 上运行 py2exe 会创建一个 *.exe,它将在 Win7 和 Win10 中运行
在 Win10 上运行 py2exe 将创建一个 *.exe,它将在 Win10 中运行,但在 Win7 中会产生此错误:

ImportError: MemoryLoadLibrary failed loading _ssl.pyd
Run Code Online (Sandbox Code Playgroud)

解决方法

将bundle_files设置为3(不打包)将生成一个*.exe,即使它是在Win10上构建的,它也可以在Win7中正常工作。

我尝试了一些 py2exe 选项,在更改 bundle_files 时突然它起作用了。但我不明白为什么。

我的设置

  • 蟒蛇 32 位 2.7.11
  • ssl.OPENSSL_VERSION => 'OpenSSL 1.0.2d 2015 年 7 月 9 日'
  • py2exe 0.6.9

两台机器上都一样(win7和win10)。

这是一个重现它的最小演示:

演示.py

import ssl
print "import done"
Run Code Online (Sandbox Code Playgroud)


可以使用这个exebuilder.py来构建它

from distutils.core import setup
import py2exe
import sys

sys.argv.append("py2exe") # run py2exe …
Run Code Online (Sandbox Code Playgroud)

python ssl py2exe python-2.7

2
推荐指数
1
解决办法
1697
查看次数

标签 统计

py2exe ×1

python ×1

python-2.7 ×1

ssl ×1