web-dev-qa-db-ja.com

64ビットWindowsでのSetupToolsのインストール

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用のインストーラーについては言及していません。私は何かを見逃したか、ソースからこれをインストールする必要がありますか?

133
quanticle

どうやら(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ビットライブラリのみをインストールすることに注意してください。

注:以下の回答には詳細が記載されていますので、それらもお読みください。

91
Dave Everitt

問題: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\PythonHKLM\SOFTWARE\wow6432node\Pythonにコピーしますが、これwillは64ビットPythonができるようにバイナリ配布で問題を引き起こします'32ビットコンパイル済みモジュールをロードしない(これをしないでください!)
  • distutilsインストーラー(easy_installまたはpip)の代わりにsetuptoolsでpure Pythonモジュールをインストールします

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

142
leoluk

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

2ビットバージョンのダウンロードHKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

64ビットバージョンのダウンロードHKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\

69
Joe DF

はい、あなたは正しいです、問題は64ビットPythonおよびsetuptools用の32ビットインストーラーにあります。

64ビットのセットアップツールをWindowsにインストールする最良の方法は、 ez_setup.py をC:\ Python27\Scriptsにダウンロードして実行することです。 setuptools用の適切な64ビットの.Eggファイルをダウンロードしてインストールします。

ソース: http://pypi.python.org/pypi/setuptools

追伸サードパーティの64ビット.exe setuptoolsインストーラーを使用したり、レジストリを操作したりしないことをお勧めします

28
arainchi

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

'python register.py'

その後、インストールすることができます。

9
nickleefly

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"

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

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

9
MichaelvdNet

64ビットPython for Windowsの場合 ez_setup.py を実行します。適切な.Eggファイルがダウンロードされ、インストールされます。

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

3
Constantin

上記を試してみましたが、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インストールのパスがインストールごとに修正されていることを確認してください。

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

1
Shaswat Rungta

WindowsインストーラーがWindows 7でインストール済みPythonディレクトリーを見つけることができるようにするには、または、インストーラーをインストールするPythonインストールを変更し、インストール済みパスを追加しますInstallPathレジストリキーの(デフォルト)値:

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

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

1
monkut

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

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

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

0