&引用;需要Python版本2.7,但在注册表中找不到该版本;尝试在Windows 8上安装netCDF4时出错
我使用Anaconda 1.7,32位。我从下载了netCDF4安装程序的正确版本 我试图将HKEY_LOCAL_MACHINE\SOFTWARE\Python文件夹复制到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432节点。不走运 有人知道为什么会这样吗?Anaconda安装在默认位置,C:/&引用;需要Python版本2.7,但在注册表中找不到该版本;尝试在Windows 8上安装netCDF4时出错,python,windows,python-2.7,installation,package,Python,Windows,Python 2.7,Installation,Package,我使用Anaconda 1.7,32位。我从下载了netCDF4安装程序的正确版本 我试图将HKEY_LOCAL_MACHINE\SOFTWARE\Python文件夹复制到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432节点。不走运 有人知道为什么会这样吗?Anaconda安装在默认位置,C:/ 是的,我知道Anaconda在软件包列表中有netCDF4,但如果仔细看,它只为Mac和Linux提供。尝试以下步骤: 只需从下载并启动安装包。我遇到了这样的问题。解决方案很简单:
是的,我知道Anaconda在软件包列表中有netCDF4,但如果仔细看,它只为Mac和Linux提供。尝试以下步骤:
只需从下载并启动安装包。我遇到了这样的问题。解决方案很简单:
另外,很抱歉,语法不正确。如果您安装的包的比特数与Python版本不同,则可能会发生此错误。要查看Python安装是32位还是64位,请参阅
SourceForge或python.org上提供的一些Superpack(例如用于Scipy)用于32位系统,有些用于64位系统。看见在Windows中,卸载32位版本并安装64位版本(如果您的安装是32位版本,则反之亦然)可以解决此问题。我在使用.exe安装Python软件包时遇到了相同的问题(因为我使用Anaconda,它没有将Python添加到注册表)。我通过运行以下脚本修复了该问题:
#
# script to register Python 2.0 or later for use with
# Python extensions that require Python registry settings
#
# written by Joakim Loew for Secret Labs AB / PythonWare
#
# source:
# http://www.pythonware.com/products/works/articles/regpy20.htm
#
# modified by Valentine Gogichashvili as described in http://www.mail-archive.com/distutils-sig@python.org/msg10512.html
import sys
from _winreg import *
# tweak as necessary
version = sys.version[:3]
installpath = sys.prefix
regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
installkey = "InstallPath"
pythonkey = "PythonPath"
pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
installpath, installpath, installpath
)
def RegisterPy():
try:
reg = OpenKey(HKEY_CURRENT_USER, regpath)
except EnvironmentError as e:
try:
reg = CreateKey(HKEY_CURRENT_USER, regpath)
SetValue(reg, installkey, REG_SZ, installpath)
SetValue(reg, pythonkey, REG_SZ, pythonpath)
CloseKey(reg)
except:
print "*** Unable to register!"
return
print "--- Python", version, "is now registered!"
return
if (QueryValue(reg, installkey) == installpath and
QueryValue(reg, pythonkey) == pythonpath):
CloseKey(reg)
print "=== Python", version, "is already registered!"
return
CloseKey(reg)
print "*** Unable to register!"
print "*** You probably have another Python installation!"
if __name__ == "__main__":
RegisterPy()
我认为这真的取决于为什么会出现这种错误。这可能是位的问题,但也可能是因为它留下了注册表项 我之所以有这个案例,是因为我的系统上需要两个版本的Python。当我尝试安装SCON(使用Python2)时,.msi安装程序失败,说它只在注册表中找到Python3。所以我卸载了它,结果根本没有找到Python。令人沮丧的!(解决方法:使用
pip安装--egg--升级scon安装scon
)
不管怎样,我相信这一现象是有线索的。我只是觉得它适合这里,因为这是我最热门的搜索结果之一 检查您试图安装的32/64位。python解释器和您尝试使用python的应用程序可能是不同的 谢谢,我有Python2.6.5(x64),而PSUTIL for 2.6仅在x86中可用。我只是不得不将Python版本切换到x86,这没有太大帮助。同样的错误仍然可能发生,例如,如果您想安装两个版本的Python,那么Windows安装程序同样会失败。我想最好看看原因是什么。@SirJane:我不能证实。我通常至少有最后一个Python2和最后一个Python3并排出现。除了Python2.7和3.5之外,我经常使用带有不同Subversion的Python2.x或Python3.x来尝试某些包的某些功能或解决其他包的问题。在同时安装所有版本之后,我从来没有遇到过像Python for Windows官方发行版那样的问题。@SirJane:我同意可能是32位与64位的差异。该链接指向32位版本的Python,该版本应该可以正常工作。但是,当您在2.x之前安装3.x时,也可能会出现此错误,然后安装程序无法解决此问题,请参见下面我的小回答。在我的例子中,我试图在win32 python上安装amd64包,您的评论让我大开眼界。对于python 3,您将被命名为“Oracle”,只需在
print
调用周围添加括号,并将import\u winreg
替换为import winreg
,它可以完美地运行于k@duahime,但注册表上的自动(编程)操作根本不安全。这就是为什么人们总是建议手动解决方案。所以,你能不能也写下如何手动完成所有这些,只用2-3行(通常只需要这么多)?上帝保佑你。谢谢