133

Windows 7 64 ビットで Python 2.7 を実行しています。setuptools のインストーラーを実行すると、Python 2.7 がインストールされていないと表示されます。具体的なエラー メッセージは次のとおりです。

`Python Version 2.7 required which was not found in the registry`

インストールされている Python のバージョンは次のとおりです。

`Python 2.7 (r27:82525, Jul  4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32`

setuptools サイトを見ていますが、64 ビット Windows 用のインストーラーについて言及されていません。何か見逃したことがありますか、それともソースからインストールする必要がありますか?

4

11 に答える 11

142

問題:64ビットのPythonと32ビットのインストーラーがあります。これにより、拡張モジュールで問題が発生します。

インストーラーがPythonを検出しない理由は、Windows 7からの透過的な32ビットエミュレーションです。64ビットおよび32ビットプログラムは、Windowsレジストリのさまざまな部分に書き込みます。

64ビット:HKLM|HKCU\SOFTWARE\

32ビット:HKLM|HKCU\SOFTWARE\wow6432node\

これは、64ビットのPythonインストーラーがに書き込みますHKLM\SOFTWARE\Pythonが、32ビットのsetuptoolsインストーラーが参照することを意味しますHKLM\SOFTWARE\wow6432node\Python(これはWindowsによって自動的に処理され、プログラムは認識しません)。これは予期される動作であり、バグではありません。

通常、次の選択肢があります。

  • 「クリーンな」方法:32ビットモジュールまたは拡張機能を使用する必要がある場合は、32ビットPythonを使用します
  • もう1つの「クリーンな」方法:64ビットPythonを使用する場合にのみ64ビットインストーラーを使用します(以下を参照)
  • 上記の答えが示唆していること:にコピーHKLM\SOFTWARE\PythonしますがHKLM\SOFTWARE\wow6432node\Python、64ビットPythonは32ビットコンパイル済みモジュールをロードできないため、これバイナリ配布で問題を引き起こします(これを行わないでください!)
  • distutilsインストーラー(easy_installまたはpip)の代わりにsetuptoolsを使用して純粋なPythonモジュールをインストールする

たとえば、setuptools自体の場合、バイナリファイルが含まれているため、64ビットPython用の32ビットインストーラーを使用することはできません。ただし、 http://www.lfd.uci.edu/~gohlke/pythonlibs/に64ビットインストーラーがあります(他のモジュール用のインストーラーも多数あります)。現在、PyPiの多くのパッケージにはバイナリディストリビューションがあるため、pipを介してインストールできます。

于 2010-09-06T15:44:51.983 に答える
91

どうやら(OS Xで関連する64ビットと32ビットの問題に直面している)Windowsインストーラーにバグがあります私はこの回避策に出くわしました。これは役立つかもしれません-基本的に、独自のレジストリ値HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPathを作成し、からInstallPath値をコピーしますHKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath。詳細については、以下の回答を参照してください。

これを行う場合、setuptoolsは32ビットライブラリのみをインストールする可能性があることに注意してください。

注:以下の回答は詳細を示しているので、それらもお読みください。

于 2010-09-06T15:42:13.843 に答える
69

レジストリを自動的に変更するレジストリ (.reg) ファイルを作成しました。「C:\Python27」にインストールされている場合に機能します。

32ビット版をダウンロード HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

64ビット版をダウンロード HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\

于 2012-02-03T16:27:03.880 に答える
9

この要点register.pyからファイルを取得します。CドライブまたはDドライブに保存し、CMDに移動して実行します。

'python register.py'

その後、インストールできるようになります。

于 2013-01-26T04:47:58.450 に答える
9

(registry file)という名前のファイルを作成し、次のpython2.7.reg内容を入れます。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help\MainPythonDocumentation]
@="C:\\Python27\\Doc\\python26.chm"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath]
@="C:\\Python27\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath\InstallGroup]
@="Python 2.7"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Modules]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\PythonPath]
@="C:\\Python27\\Lib;C:\\Python27\\DLLs;C:\\Python27\\Lib\\lib-tk"

そして、すべてのパスが正しいことを確認してください!

次に、それを実行(マージ)して完了します:)

于 2012-10-26T13:36:12.640 に答える
3

Windows 上の 64 ビット Python の場合は、 ez_setup.pyをダウンロードして実行します。適切な .egg ファイルをダウンロードしてインストールします。

執筆時点では、distutils インストーラーの互換性の問題により、.exe インストーラーは Windows 用の 64 ビット バージョンの Python をサポートしていません。

于 2011-07-15T13:17:47.463 に答える
1

上記を試してみましたが、LOCALMACHINE にレジストリ キーを追加してもうまくいきませんでした。それでも行き詰まる場合は、これを試してください。

Windows レジストリ エディタ バージョン 5.00

[HKEY_CURRENT_USER\SOFTWARE\Python]

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore]

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7]

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\Help]

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\Help\Main Python Documentation] @="C:\Python27\Doc\python272.chm"

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\InstallPath] @="C:\Python27\"

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\InstallPath\InstallGroup] @="Python 2.7"

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\Modules]

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\PythonPath] @="C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk"

上記をコピーしてメモ帳に貼り付け、 Python27.reg として保存します。上記の回答に記載されているように、ファイルを実行/マージします。(Python インストールのパスがインストールに従って修正されていることを確認してください。

上記の回答がローカルマシンに対して示唆していることを現在のユーザーに単純に実行します。

于 2014-10-27T16:49:11.860 に答える
1

Windows インストーラーがWindows 7にインストールされている Python ディレクトリを検出できるようにするには、または、インストーラーをインストールする Python インストールを変更するには、インストールされたパスをInstallPathレジストリ キーの(デフォルト)値に追加します。

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.X\InstallPath

" X " は Python のバージョン (つまり、2.5、2.6、または 2.7) です。

于 2012-02-29T02:42:26.077 に答える
0

ここに別の投稿/スレッドへのリンクがあります。このスクリプトを実行して、Python 2.7 の登録を自動化することができました。.exe(登録したいPython 2.x から必ず実行してください!)

Python 3.x を登録するには、構文を変更して( の代わりに)printインポートし、Python 3 を実行する必要がありました。winreg_winreg.exe

https://stackoverflow.com/a/29633714/3568893

于 2015-08-14T12:29:51.253 に答える
-2

多くのライブラリ用の64ビットインストーラーはここにあります:http ://www.lfd.uci.edu/~gohlke/pythonlibs/

于 2012-07-21T17:07:42.350 に答える