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


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


7
読者への注意:下にスクロールしてください、受け入れられた答えは最良のものではありません。

残念ながら、質問を投稿したとき、64ビットのSetupToolsインストーラーは存在しなかったので、回避策を受け入れました。
クォンクル2013年

2
@JohnRobertsonその時、最良の答えは何ですか?
2014年

回答:


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ビットライブラリのみであることに注意してください。

注:以下の応答は詳細を提供するので、それらも読んでください。


1
PIL(PIL-1.1.7.win32-py2.7)のインストールでも機能します。
パニー2013年

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経由でインストールできます。


7
非公式のインストーラーのための素晴らしいリンク!
Andriy Drozdyuk、2011

ありがとう。amd64でPython 2.7の問題を解決しました。
nmat 2011

2
同じことが他の周りの道(2.7 32とsetuptoolsの64)のために行くstackoverflow.com/a/10966396/404385 < -あなたのインストール版Pythonと32/64です何かを見つけるために
Cu7l4ss

1
そのリンクは純金です!
Paul Becotte 2013

1
WHLファイルをインストールする方法がわからない人のために、あなたは次のように、PIPを使用してインストールするpip install xyz.whl
アルン

69

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

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

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


3
あなたのREGファイルは私にとってはうまくいきましたが、私は反対の問題があったので、すべてのキー名から "\ Wow6432Node"を削除する必要がありました。
pwhe23 2012年

32ビットのリンクを投稿できると思います。:P
Joe DF

素晴らしいパッチファイル!すごい!有難うございます!!
Benny Neugebauer、2014年

@BennyNeugebauer問題ありません。
Joe DF

@EvanCaldwell問題ありません!
Joe DF、

28

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

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

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

PS私は、サードパーティの64ビット.exe setuptoolsインストーラーの使用やレジストリの操作に反対することをお勧めします


2
このソリューションがどれほど速くて簡単かは信じられません。私は他の道に行き詰まった時間を過ごしました。
ブレット

1
私の意見では最良かつ最も安全なソリューションです!
djfranzwa 2014

9

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"

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

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


ありがとう!私はそれがpython 2.76とh5pyセットアップで動作することを確認できます。多分ちょうど良い順序のためにpython276.chmへのドキュメントパスを更新します:)
mork

9

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

'python register.py'

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


これが最も簡単な解決策です。ありがとう!wxPython2.8-win32-unicode-2.8.12.1-py27をインストールしようとしたときにこの問題が発生し、Pythonが登録されていないという
メッセージが常に表示

3

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

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


これは実際に私のために働いた!ジョー・DFによって他のスクリプトは私のために動作しませんでした
wordsforthewise

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)。


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

これは単に、現在のユーザーに対して上記の回答がローカルマシンに対して提案することを意味します。


0

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

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

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.