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用のインストーラーについては言及していません。私は何かを見逃したか、ソースからこれをインストールする必要がありますか?
どうやら(OS Xで関連する64ビットと32ビットの問題に直面して) Windowsインストーラーのバグ があります。私は この回避策 に遭遇しました。これは基本的に、独自のレジストリ値HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPath
を作成し、HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath
からInstallPath値をコピーします。詳細については、以下の回答を参照してください。
これを行う場合、setuptoolsは32ビットライブラリのみをインストールすることに注意してください。
注:以下の回答には詳細が記載されていますので、それらもお読みください。
問題: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によって自動的に処理され、プログラムは認識しません)。これは予想される動作であり、バグではありません。
通常、次の選択肢があります。
HKLM\SOFTWARE\Python
をHKLM\SOFTWARE\wow6432node\Python
にコピーしますが、これwillは64ビットPythonができるようにバイナリ配布で問題を引き起こします'32ビットコンパイル済みモジュールをロードしない(これをしないでください!)たとえば、setuptools自体の場合、バイナリファイルが含まれているため、64ビットPythonに32ビットインストーラーを使用することはできません。 しかし、64ビットのインストーラーがあります http://www.lfd.uci.edu/~gohlke/pythonlibs/ (他のモジュールにも多くのインストーラーがあります) 。現在、PyPiの多くのパッケージにはバイナリ配布があるため、pipを介してインストールできます。
レジストリを自動的に変更するレジストリ(.reg)ファイルを作成しました。 「C:\ Python27」にインストールされている場合は機能します。
2ビットバージョンのダウンロードHKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\
64ビットバージョンのダウンロードHKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\
はい、あなたは正しいです、問題は64ビットPythonおよびsetuptools用の32ビットインストーラーにあります。
64ビットのセットアップツールをWindowsにインストールする最良の方法は、 ez_setup.py をC:\ Python27\Scriptsにダウンロードして実行することです。 setuptools用の適切な64ビットの.Eggファイルをダウンロードしてインストールします。
ソース: http://pypi.python.org/pypi/setuptools
追伸サードパーティの64ビット.exe setuptoolsインストーラーを使用したり、レジストリを操作したりしないことをお勧めします
this Gist からregister.py
ファイルを取得します。 CドライブまたはDドライブに保存し、CMDに移動して実行します。
'python register.py'
その後、インストールすることができます。
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"
そして、すべてのパスが正しいことを確認してください!
次に、それを実行(マージ)して完了します:)
64ビットPython for Windowsの場合 ez_setup.py を実行します。適切な.Eggファイルがダウンロードされ、インストールされます。
執筆時点では、.exeインストーラーは、WindowsのPythonの64ビットバージョンをサポートしていません。これは、 distutilsインストーラーの互換性の問題 が原因です。
上記を試してみましたが、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インストールのパスがインストールごとに修正されていることを確認してください。
上記の回答がローカルマシンに対して示唆することを、現在のユーザーに単に行います。
WindowsインストーラーがWindows 7でインストール済みPythonディレクトリーを見つけることができるようにするには、または、インストーラーをインストールするPythonインストールを変更し、インストール済みパスを追加しますInstallPathレジストリキーの(デフォルト)値:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.X\InstallPath
ここで、「X」はPythonバージョン(つまり、2.5、2.6、または2.7)です。
他の投稿/スレッドへのリンクはこちらです。このスクリプトを実行して、Python 2.7の登録を自動化できました。 (登録するPython 2.x .exe
から実行してください!)
Python 3.xを登録するには、print
構文を変更し、winreg
を(_winreg
の代わりに)インポートしてから、Python 3 .exe
を実行する必要がありました。