Menginstal SetupTools pada Windows 64-bit

133

Saya menjalankan Python 2.7 pada Windows 7 64-bit, dan ketika saya menjalankan installer untuk setuptools ia memberi tahu saya bahwa Python 2.7 tidak diinstal. Pesan kesalahan spesifik adalah:

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

Versi Python terinstal saya adalah:

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

Saya sedang melihat situs setuptools dan tidak menyebutkan penginstal untuk Windows 64-bit. Apakah saya melewatkan sesuatu atau saya harus menginstal ini dari sumber?

quanticle
sumber
7
Catatan untuk pembaca: Gulir ke bawah, jawaban yang diterima bukan yang terbaik.
Sayangnya, installer SetupTools 64-bit tidak ada ketika saya memposting pertanyaan saya, jadi saya menerima solusinya, mengetahui sepenuhnya bahwa itu adalah peretasan.
quanticle
2
@JohnRobertson apa jawaban terbaik?
rrs

Jawaban:

91

Rupanya (setelah menghadapi masalah 64-dan 32-bit terkait pada OS X) ada bug di installer Windows . Saya menemukan solusi ini , yang mungkin membantu - pada dasarnya, Anda membuat nilai registri Anda sendiri HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPathdan menyalin nilai InstallPath dari HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath. Lihat jawaban di bawah ini untuk lebih jelasnya.

Jika Anda melakukan ini, berhati-hatilah bahwa setuptools hanya dapat menginstal perpustakaan 32-bit .

CATATAN: respons di bawah ini menawarkan detail lebih lanjut, jadi silakan baca juga.

Dave Everitt
sumber
1
Bekerja dengan menginstal PIL (PIL-1.1.7.win32-py2.7) juga.
Panny
142

Masalah: Anda memiliki Python 64-bit, dan penginstal 32-bit. Ini akan menyebabkan masalah untuk modul ekstensi.

Alasan mengapa installer tidak menemukan Python adalah emulasi 32-bit transparan dari Windows 7. Program 64-bit dan 32-bit akan menulis ke berbagai bagian dari registri Windows.

64-bit: HKLM|HKCU\SOFTWARE\

32-bit: HKLM|HKCU\SOFTWARE\wow6432node\.

Ini berarti bahwa penginstal Python 64-bit menulis HKLM\SOFTWARE\Python, tetapi penginstal setuptool 32-bit melihat HKLM\SOFTWARE\wow6432node\Python(ini ditangani oleh windows secara otomatis, program tidak memperhatikan). Ini adalah perilaku yang diharapkan dan bukan bug.

Biasanya, Anda memiliki pilihan ini:

  • cara "bersih": gunakan Python 32-bit jika Anda harus menggunakan modul atau ekstensi 32-bit
  • cara "bersih" lainnya: hanya gunakan penginstal 64-bit saat menggunakan Python 64-bit (lihat di bawah)
  • apa jawaban yang disarankan di atas: salin HKLM\SOFTWARE\Pythonke HKLM\SOFTWARE\wow6432node\Python, tetapi ini akan menyebabkan masalah dengan distribusi biner, karena Python 64-bit tidak dapat memuat modul yang dikompilasi 32-bit (JANGAN lakukan ini!)
  • instal modul Python murni dengan setuptools alih-alih installer distutils (easy_install atau pip)

Untuk setuptools itu sendiri, misalnya, Anda tidak bisa menggunakan penginstal 32-bit untuk 64-bit Python karena ia menyertakan file biner. Tetapi ada installer 64-bit di http://www.lfd.uci.edu/~gohlke/pythonlibs/ (memiliki banyak installer untuk modul lain juga) . Saat ini, banyak paket di PyPi memiliki distribusi biner, sehingga Anda dapat menginstalnya melalui pip.

leoluk
sumber
7
Tautan hebat untuk pemasang tidak resmi!
Andriy Drozdyuk
Terima kasih. Memecahkan masalah saya untuk Python 2.7 dengan amd64.
nmat
2
Hal yang sama berlaku untuk sebaliknya (2,7 32 dan setuptools 64) stackoverflow.com/a/10966396/404385 <- untuk mengetahui apa yang Anda pasang python ver dan 32/64
Cu7l4ss
1
Tautan itu adalah emas murni!
Paul Becotte
1
Bagi mereka yang tidak tahu cara menginstal file whl, Anda menginstalnya menggunakan pip, sepertipip install xyz.whl
arun
69

Saya membuat file registry (.reg) yang secara otomatis akan mengubah registri untuk Anda. Ini berfungsi jika diinstal di "C: \ Python27":

Unduh versi 32-bit HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

Unduh versi 64-bit HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\

Joe DF
sumber
3
File REG Anda berfungsi untuk saya tetapi saya memiliki masalah sebaliknya jadi saya harus menghapus "\ Wow6432Node" dari semua nama kunci.
pwhe23
Saya kira saya bisa memposting tautan untuk 32bit ..: P
Joe DF
File tambalan yang luar biasa! Bagus! Terima kasih untuk itu!!
Benny Neugebauer
@ BennyNeugebauer Tidak masalah.
Joe DF
@EvanCaldwell Tidak masalah!
Joe DF
28

Ya, Anda benar, masalahnya adalah dengan Python 64-bit dan penginstal 32-bit untuk setuptools.

Cara terbaik untuk menginstal setuptools 64-bit pada Windows adalah dengan mengunduh ez_setup.py ke C: \ Python27 \ Scripts dan jalankan. Ini akan mengunduh file .egg 64-bit yang sesuai untuk setuptools dan menginstalnya untuk Anda.

Sumber: http://pypi.python.org/pypi/setuptools

PS Saya akan merekomendasikan untuk tidak menggunakan installer pihak ketiga 64-bit .exe setuptools atau memanipulasi registri

arainchi
sumber
2
tidak percaya betapa cepat dan mudahnya solusi ini. Saya menghabiskan berjam-jam terjebak di jalan lain.
Brett
1
Solusi terbaik dan teraman menurut saya!
djfranzwa
9

Buat file dengan nama python2.7.reg(file registri) dan masukkan konten ini ke dalamnya:

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"

Dan pastikan setiap jalan benar!

Kemudian jalankan (gabungkan) dan lakukan :)

MichaelvdNet
sumber
Terima kasih! Saya dapat mengkonfirmasi itu berfungsi untuk pengaturan python 2.76 dan h5py. Mungkin baru saja memperbarui jalur doc ke python276.chm untuk keteraturan yang baik :)
mork
9

Dapatkan file register.pydari intisari ini . Simpan di drive C atau D, buka CMD untuk menjalankannya dengan:

'python register.py'

Maka Anda akan dapat menginstalnya.

Nickleefly
sumber
Ini adalah solusi paling sederhana. Terima kasih! Saya mengalami masalah ini ketika mencoba untuk menginstal wxPython2.8-win32-unicode-2.8.12.1-py27 dan itu selalu mengeluh ke python tidak terdaftar
Robert1968
3

Untuk Python 64-bit pada Windows, unduh ez_setup.py dan jalankan; itu akan mengunduh file .egg yang sesuai dan menginstalnya untuk Anda.

Pada saat penulisan .exe installer tidak mendukung versi 64-bit Python untuk Windows, karena masalah kompatibilitas installer distutils .

Konstantin
sumber
ini benar-benar bekerja untuk saya! naskah lain oleh Joe DF tidak berfungsi untuk saya
kata
1

Untuk mengizinkan penginstal Windows menemukan direktori Python yang terinstal di Windows 7 , ATAU, mengubah instalasi Python tempat menginstal penginstal, tambahkan jalur yang diinstal ke dalam nilai (default) kunci registri InstallPath :

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

Di mana " X " adalah versi Python (yaitu, 2.5, 2.6, atau 2.7).

monkut
sumber
1

Saya mencoba di atas dan menambahkan kunci registri ke LOCALMACHINE tidak menyelesaikan pekerjaan. Jadi jika Anda masih macet, coba ini.

Windows Registry Editor Versi 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 \ Bantuan]

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ Help \ Dokumentasi Python Utama] @ = "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 \ Modul]

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

Salin rekatkan di atas dalam notepad dan simpan sebagai Python27.reg. Sekarang jalankan / gabungkan file seperti yang disebutkan dalam jawaban di atas. (Pastikan jalur instalasi Python dikoreksi sesuai instalasi Anda.

Ini cukup, apa jawaban di atas menyarankan untuk mesin lokal, kepada pengguna saat ini.

Shaswat Rungta
sumber
0

Berikut ini tautan ke pos / utas lainnya. Saya dapat menjalankan skrip ini untuk mengotomatisasi pendaftaran Python 2.7. (Pastikan untuk menjalankannya dari Python 2.x .exeyang ingin Anda daftarkan!)

Untuk mendaftar Python 3.x saya harus memodifikasi printsintaks dan mengimpor winreg(bukan _winreg), kemudian jalankan Python 3 .exe.

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

robertberrington
sumber