Python3.5.2 bdist_wininst:需要Python版本-32,这在注册表

时间:2016-11-09 13:04:00

标签: python windows

我'我在Windows 7上使用32位的Python 3.5.2创建了一个包的问题。

我通常使用setuptools的bdist_wininst选项在Windows上部署我的Python包。这样,我的同事很容易通过启动Windows安装程序exe来更新程序包。但是,由于我更改为Python 3.5.2,因此在尝试安装软件包时出现以下错误:

Python version -32 required, which was not found in the registry

对我而言,似乎安装程序正在寻找一个名为" -32" 的Python版本,它无法找到。有人遇到同样的问题或找到解决方案吗?

2 个答案:

答案 0 :(得分:3)

看起来这是一个已知的错误:https://bugs.python.org/issue26630

我发现的解决方法是在十六进制编辑器中手动编辑可执行安装程序。字符-32出现在位置7A5D4-7A5D6中。用所有NULL字符替换它们。之后,安装程序似乎工作正常。

显然,这是一个完整的黑客攻击。使用风险由您自己承担。

答案 1 :(得分:2)

我在3.6.0中找到的另一种解决方法(其中bdist_wininst仍然被破坏)是使用MSI构建器bdist_msi

仅在https://bugs.python.org/issue26071 {替换https://bugs.python.org/issue26630)中标记为“固定为3.5.3,3.6.1和默认值”。