Python3.5.2 bdist_wininst:Python版本-32是必需的,在注册表中找不到该版本

Python3.5.2 bdist_wininst:Python版本-32是必需的,在注册表中找不到该版本,python,windows,Python,Windows,我在Windows7上用Python3.5.2 32位创建的包有一个问题 我通常使用setuptools的bdist\u wininst选项在Windows上部署Python包。通过这种方式,我的同事只需启动windows installer exe即可轻松更新软件包。但是,由于我改为Python 3.5.2,因此在尝试安装软件包时出现以下错误: Python version -32 required, which was not found in the registry 对我来说,安装程序

我在Windows7上用Python3.5.2 32位创建的包有一个问题

我通常使用setuptools的
bdist\u wininst
选项在Windows上部署Python包。通过这种方式,我的同事只需启动windows installer exe即可轻松更新软件包。但是,由于我改为Python 3.5.2,因此在尝试安装软件包时出现以下错误:

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

对我来说,安装程序似乎正在寻找一个名为“-32”的Python版本,但找不到。是否有人遇到了相同的问题或找到了解决方案?

看起来这是一个已知的错误:

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


显然,这是一个完全的黑客行为。使用风险自负

我在3.6.0中发现的另一个解决方法(其中
bdist_-wininst
仍然被破坏)是使用MSI生成器
bdist_-MSI


仅供参考,在(的替换)中,这标记为“针对3.5.3、3.6.1和默认设置已修复”。

检查
findstr/r“target_version=.*”[ExecutableName]
。它应该找不到任何内容或类似于
target\u version=3.5-32
的内容。好的,我尝试了
findstr/r“target\u version=.*”mypackage.win32.exe
,但没有得到任何结果。但是,如果我在构建分发版中为creating使用选项
--target version=“3.5”
,我会得到
target\u version=3.5
。然后,我也可以安装构建分发版。但是我需要为Python3.5提供目标版本的原因是什么?对于Python的早期版本,我没有这个问题。AFAIK,您不应该有这个问题。我想确定这不是将可执行文件与ini文件和安装脚本捆绑在一起的distutils代码中的错误。根据您的结果,它似乎是可执行文件中的一个bug,但我在扫描源代码时没有看到明显的问题。