我无法安装 numpy,因为它找不到 python 2.7,虽然我已经安装了 python。
我有消息:“需要 Python 版本 2.7,在注册表中找不到”
有没有解决我的问题?
最佳答案
这对于依赖或寻找以前安装的 64 位核心应用程序(例如 Python x64)的安装程序(例如 Numpy)并不少见。问题和解决方案很容易解释。
问题 恕我直言,这是已安装的 64 位应用程序的开发人员通过将注册表项放置在 32 位节点而不是(或除了)64 位节点中的错误。实际上,安装程序的开发人员也可以对其进行编码以同时查看这两个位置,而不是仅仅假设 64 位应用程序注册表项将位于\Wow6432Node 中,以此来避免原始开发人员疏忽的问题;但是,如果安装程序根据注册表项的位置来决定应用程序是 32 位还是 64 位(这不是一个好主意),这可能会出现问题。
对于 64 位应用程序,有时会在...中创建注册表项
HKLM\SOFTWARE\[applicaion name]
但是,没有在...中创建相应的注册表项
HKLM\SOFTWARE\Wow6432Node\[application name]
解决方案 使用任何应用程序解决此问题的最简单方法是...
- 打开注册表编辑器(开始 --> 运行 --> regedit)
- 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\[应用程序名称](在本例中为“Python”)
- 右键单击应用程序(“Python”)
- 选择“导出”并将文件另存为“[应用程序名称].reg”(“Python.reg”)
- 使用您选择的编辑器打开保存的文件(我喜欢 Notepad++)
- 在“[HKEY_LOCAL_MACHINE\SOFTWARE”之后但在\[应用程序名称](“\Python”)之前的每个条目上,添加“\Wow6432Node”(显然不带引号)
- 将编辑后的文件另存为“[应用程序名称]_64.reg”(Python_64.reg)
- 关闭编辑器并双击新创建的文件,在注册表编辑器验证弹出窗口中回答"is"。
现在您应该在 HKLM\SOFTWARE\[应用程序名称] 和 HKLM\SOFTWARE\Wow6432Node\[应用程序名称] 中有重复的条目。或者,您可以在 HKLM\SOFTWARE\Wow6432Node\[应用程序名称] 下手动创建所有缺少的条目,以匹配 HKLM\SOFTWARE\[应用程序名称] 中的内容,但这确实是很长的路要走。
当您重新运行 Numpy 安装程序时,它现在将正确检测您的 64 位 Python 安装。
警告 所有这一切都有一个警告。
HKLM\SOFTWARE 和 HKLM\SOFTWARE\Wow6432Node 中的重复条目没有问题,不会影响应用程序的正常运行;但是,由于开发人员错过了创建 Wow6432Node 注册表项,因此修改注册表项的任何 future 更新都不太可能在这两个位置填充。您可能有时必须再次执行此操作或手动将新注册表项添加到 Wow6432Node 以保持它们的一致性。您可能会遇到这种情况的一个示例是安装 Python 模块,该模块在 HKLM\SOFTWARE\Python\PythonCore\2.x\Modules\下添加了一个条目。您可以只导出添加的条目并编辑 .reg 文件以仅包含“\Wow6432Node”,导出整个\Python 节点并编辑所有条目(导入已编辑的 .reg 文件将覆盖现有条目),或者只是手动添加新的entry - 任何对你来说更简单的东西。
关于python - 我无法安装 numpy,因为它找不到 python 2.7,虽然我已经安装了 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9684254/