"Требуется версия Python версии 2.7, которая не была найдена в реестре" при попытке установить netCDF4 на Windows 8

Я использую Anaconda 1.7, 32 бит. Я загрузил правильную версию установщика netCDF4 из здесь.

Я попытался скопировать папку HKEY_LOCAL_MACHINE\SOFTWARE\Python в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node. Не повезло.

Кто-нибудь может понять, почему это может произойти? Anaconda, установленная в местоположении по умолчанию, C:/.

Да, я знаю, что Anaconda имеет netCDF4 в списке пакетов, но если вы посмотрите внимательно, он будет предлагаться только для Mac и Linux.

Ответ 2

Эта ошибка может возникнуть, если вы устанавливаете пакет с другой битовой точностью, чем ваша версия Python. Чтобы узнать, является ли ваша установка Python 32- или 64-разрядной, см. здесь.

Некоторые суперпаки (например, для Scipy), доступные на SourceForge или python.org, предназначены для 32-разрядных систем, а некоторые для 64-разрядных систем. См. этот ответ. В Windows можно решить проблему с помощью 32-разрядной установки и установки 64-разрядной версии (или наоборот, если ваша установка - 32-разрядная).

Ответ 3

У меня была такая же проблема при использовании .exe для установки пакета Python (потому что я использую Anaconda, и он не добавляет Python в реестр). Я исправил проблему, запустив этот script:

#
# 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/[email protected]/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()

Ответ 5

Я думаю, что это действительно зависит от того, почему эта ошибка дается. Это может быть проблема с битрейтом, но также может быть из-за ошибка деинсталлятора, которая оставляет записи в реестре позади.

У меня просто был этот случай, потому что мне нужны две версии Python в моей системе. Когда я попытался установить SCons (используя Python2), программа установки .msi потерпела неудачу, заявив, что она только обнаружила Python3 в реестре. Поэтому я удалил его, в результате чего ни один Python не был найден вообще. Срыв! (обход: установить SCons с pip install --egg --upgrade scons)

В любом случае, я уверен, что на этом явлении есть темы. Я просто подумал, что это подойдет, потому что это был один из моих лучших результатов поиска.

Ответ 6

У меня была такая проблема. Решение было простым:

  • Установите версию 64-битной версии python 2.7.
  • Экспорт HKEY_LOCAL_MACHINE\SOFTWARE\Python.
  • Удалить Python 2.7.
  • вставить экспортированный файл reg.
  • переименуйте все C:\Python27 в C:\Anaconda (введите свой путь).

P.S. Извините, за плохую грамматику.