web-dev-qa-db-ja.com

Windows 8にnetCDF4をインストールしようとすると、「レジストリに見つからないPythonバージョン2.7が必要です」というエラーが表示される

Anaconda 1.7、32ビットを使用します。 here からnetCDF4インストーラーの正しいバージョンをダウンロードしました。

HKEY_LOCAL_MACHINE\SOFTWARE\PythonフォルダーをHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Nodeにコピーしようとしました。運がありません。

なぜこれが起こっているのか誰にも分かりますか? Anacondaはデフォルトの場所C:/にインストールされています。

はい、AnacondaのパッケージリストにnetCDF4があることは知っていますが、よく見るとMacとLinuxでしか提供されていません。

39
bogdan

Python 2.7.6 Windows Installer公式Pythonダウンロードページ からダウンロードして、インストールパッケージを起動します。

2
pepr

このエラーは、Pythonバージョンとは異なるビット数でパッケージをインストールしている場合に発生する可能性があります。 Pythonインストールが32ビットか64ビットかを確認するには、 here を参照してください。

SourceForgeまたはpython.orgで利用可能なスーパーパック(Scipyなど)には、32ビットシステム用のものと64ビットシステム用のものがあります。 この回答 を参照してください。 Windowsでは、32ビットをアンインストールし、64ビットバージョンをインストールする(インストールが32ビットの場合はその逆)ことで問題を解決できます。

94
1''

.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/[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 __== "__main__":
    RegisterPy()
53
duhaime
6
Javi Pedrera

このエラーが発生する理由に本当に依存すると思います。ビット数の問題である可能性がありますが、レジストリエントリが残っている アンインストーラーのバグ が原因である可能性もあります。

私のシステムにはPythonの2つのバージョンが必要なため、このケースがありました。 (Python2を使用して)SConsをインストールしようとすると、.msiインストーラーは失敗し、レジストリ内にPython3しか見つからなかったと言いました。それでアンインストールした結果、Pythonがまったく見つかりませんでした。イライラする! (回避策:pip install --Egg --upgrade sconsでSConsをインストールします)

とにかく、私はその現象にスレッドがあると確信しています。これが私の一番の検索結果の1つだったので、ここに収まると思いました。

3
Sir Jane

そのような問題がありました。解決策は簡単でした:

  1. python 2.7 64ビットバージョンをインストールします。
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Pythonをエクスポートします。
  3. Python 2.7を削除します。
  4. エクスポートされたregファイルを挿入します。
  5. すべてのC:\ Python27の名前をC:\ Anacondaに変更します(パスを挿入します)。

追伸文法が悪いためごめんなさい。

1
user