【问题标题】:I cannot install numpy because it can't find python 2.7, althought I have installed python我无法安装 numpy,因为它找不到 python 2.7,虽然我已经安装了 python
【发布时间】:2012-03-29 20:48:23
【问题描述】:

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

我有消息:“需要 Python 版本 2.7,在注册表中找不到”

有没有解决我的问题?

【问题讨论】:

  • 你需要哪个版本的numpy。 32 位还是 64 位窗口?

标签: python numpy


【解决方案1】:

这对于依赖或寻找以前安装的 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. 关闭编辑器并双击新创建的文件,在注册表编辑器验证弹出窗口中回答“是”。

现在您应该在 HKLM\SOFTWARE\ [应用程序名称] 和 HKLM\SOFTWARE\Wow6432Node\ [应用程序名称] 中有重复的条目。或者,您可以手动在 HKLM\SOFTWARE\Wow6432Node\ [应用程序名称] 下创建所有缺少的条目,以匹配 HKLM\SOFTWARE\ [应用程序名称] 中的内容,但这确实是很长的路要走。

当您重新运行 Numpy 安装程序时,它现在将正确检测您的 64 位 Python 安装。

警告 所有这一切都有一个警告。

HKLM\SOFTWARE 和 HKLM\SOFTWARE\Wow6432Node 中的重复条目没有问题,不会影响应用程序的正常运行;但是,由于开发人员错过了创建 Wow6432Node 注册表项,因此修改注册表项的任何未来更新都不太可能在这两个位置填充。您可能有时必须再次执行此操作或手动将新注册表项添加到 Wow6432Node 以保持它们的一致性。您可能会遇到这种情况的一个示例是安装 Python 模块,该模块在 HKLM\SOFTWARE\Python\PythonCore\2.x\Modules\ 下添加了一个条目。您可以仅导出添加的条目并编辑 .reg 文件以仅包含“\Wow6432Node”,导出整个 \Python 节点并编辑所有条目(导入已编辑的 .reg 文件将覆盖现有条目),或者只是手动添加新的entry - 任何对你来说更简单的东西。

【讨论】:

  • +1 以管理员身份运行 cmd.exe 窗口并使用 reg copy HKLM\SOFTWARE\Python HKLM\SOFTWARE\Wow6432Node\Python /s 比使用 regedit 和文本编辑器稍微容易一些。
  • 感谢@WanderingLogic!在 Win 7 64 位和安装 Numpy-MKL-1.8.0b2 上更容易并且为我工作
  • 这对我来说可以安装它,但是当我去使用它时它不起作用,因为它是一个 32 位二进制文​​件。
【解决方案2】:

您应该安装 Python 32 位,或使用来自 this unofficial site 的 Python 64 位的 numpy 包

【讨论】:

  • 即使我有 64 位版本的 Windows 7,我仍然必须安装 32 位 numpy 包。对我有用的 numpy 是 lfd.uci.edu/~gohlke/pythonlibs/#numpy 的非官方版本之一,即 numpy‑MKL‑1.9.1.win32‑py2.7.exe。
  • 您可能拥有 32 位版本的 Python。您可以在 64 位 Windows 上安装 64 位和 32 位版本的 Python。
【解决方案3】:

这个问题也会影响 32 位 Python 上的 32 位 numpy。

原因是 numpy 安装程序假定您在安装 Python 时选择了“为所有用户安装”,即 Python 安装程序使用机器范围的 HKEY_LOCAL_MACHINE注册表的一部分。 如果您改为选择“仅为我安装”,这些注册表设置位于注册表的用户可写部分,*HKEY_USERS_*(又名 HKEY_CURRENT_USER强>)。 numpy 安装程序看不到那里,因此认为 Python 没有安装。

解决方案: 将 HKEY_CURRENT_USER\Software\Python 键和所有子键复制到 HKEY_LOCAL_MACHINE\Software 下的相应位置(您可以使用 Export from regedit 执行此操作,然后在文本中查找并替换文件,然后导入)。或者,重新安装 Python 并选择“所有用户”。

【讨论】:

  • 没有HKEY_CURRENT_USER\Software\Python
【解决方案4】:

你必须匹配 python 和 numpy 的版本。两者都需要是 32 位或 64 位。

【讨论】:

    【解决方案5】:

    你应该安装 python 2.7 32bit。数值python windows版本都是32bit的。

    【讨论】:

      【解决方案6】:

      从您的系统中卸载 Python 并重新安装。然后从这个站点下载numpy:http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

      如果您想检查系统上的 numpy 版本,请在您的 IDE 上编写以下代码:

      import numpy
      numpy.version.version
      

      希望这会有所帮助!

      【讨论】:

        【解决方案7】:
        1. 运行安装程序

        2. 出现错误时点击取消

        3. 点击显示详情

        4. 它会在列表末尾显示Execute: C:\.........\numpy-1.7.1-sse3.exe,转到该文件夹​​,获取该文件并将其放入C:\python27\

        5. 一旦它在所述文件夹中,从该位置运行它。安装程序将运行并找到它。

        【讨论】:

          猜你喜欢
          • 2020-03-15
          • 1970-01-01
          • 1970-01-01
          • 2016-09-20
          • 2019-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多