python - 我无法安装 numpy,因为它找不到 python 2.7,虽然我已经安装了 python

标签 python numpy

我无法安装 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]

解决方案 使用任何应用程序解决此问题的最简单方法是...

  1. 打开注册表编辑器(开始 --> 运行 --> regedit)
  2. 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\[应用程序名称](在本例中为“Python”)
  3. 右键单击应用程序(“Python”)
  4. 选择“导出”并将文件另存为“[应用程序名称].reg”(“Python.reg”)
  5. 使用您选择的编辑器打开保存的文件(我喜欢 Notepad++)
  6. 在“[HKEY_LOCAL_MACHINE\SOFTWARE”之后但在\[应用程序名称](“\Python”)之前的每个条目上,添加“\Wow6432Node”(显然不带引号)
  7. 将编辑后的文件另存为“[应用程序名称]_64.reg”(Python_64.reg)
  8. 关闭编辑器并双击新创建的文件,在注册表编辑器验证弹出窗口中回答"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/

相关文章:

python - Numpy 在 z 方向上广播

python - python中的高效张量收缩

python 解析文本文件中的条件多行

python - 给定一个元素 A 从 python 列表中查找 A 的上一个和下一个元素

python - 将 2D 数组转换为 3D numpy 数组

javascript - Javascript 中的 bool 数组掩码

python - cv2.imread : checking if image is being read

python - 将几行与 Pandas 的定界符连接成一行

python - Pandas 从来自 Excel 的数据框中删除列和行

python - 如何存储和加载庞大的图像数据集?