64-bit Windows'a SetupTools Kurulumu


133

Windows 7 64-bit üzerinde Python 2.7 çalıştırıyorum ve kurulum araçları için yükleyiciyi çalıştırdığımda bana Python 2.7'nin yüklü olmadığını söylüyor. Özel hata mesajı:

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

Yüklü Python sürümüm:

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

Setuptools sitesine bakıyorum ve 64 bit Windows için herhangi bir yükleyiciden bahsetmiyor. Bir şeyi kaçırdım mı yoksa bunu kaynaktan yüklemem gerekiyor mu?


7
Okuyuculara not: Aşağı kaydırın, kabul edilen cevap en iyisi değildir.

Ne yazık ki, sorumu gönderdiğimde 64 bit SetupTools yükleyicisi yoktu, bu yüzden bir hack olduğunu tam olarak bilerek geçici çözümü kabul ettim.
26:13

2
@JohnRobertson o zaman en iyi cevap nedir?
rrs

Yanıtlar:


91

Görünüşe göre (OS X'te ilgili 64 ve 32 bit sorunlarla karşılaştıktan sonra) Windows yükleyicide bir hata var . Temel olarak kendi kayıt defteri değerinizi oluşturup InstallPath değerinin üzerine kopyaladığınız bu geçici çözümde tökezledim . Daha fazla ayrıntı için aşağıdaki cevaba bakınız.HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPathHKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath

Bunu yaparsanız, setuptools'un yalnızca 32 bit kitaplıklar yükleyebileceğini unutmayın .

NOT: aşağıdaki yanıtlar daha fazla ayrıntı sunmaktadır, bu yüzden lütfen bunları da okuyun.


1
PIL (PIL-1.1.7.win32-py2.7) kurulumuyla da çalışır.
panny

142

Sorun: 64 bit Python ve 32 bit yükleyiciniz var. Bu, genişletme modülleri için sorunlara neden olacaktır.

Yükleyicinin Python'u bulamamasının nedenleri, Windows 7'den gelen şeffaf 32 bit emülasyonudur. 64 bit ve 32 bit programlar Windows kayıt defterinin farklı bölümlerine yazacaktır.

64 bit: HKLM|HKCU\SOFTWARE\

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

Bu, 64 bit Python yükleyicisinin yazdığı HKLM\SOFTWARE\Python, ancak 32 bit kurulum araçları yükleyicisinin baktığı anlamına gelir HKLM\SOFTWARE\wow6432node\Python(bu, pencereler tarafından otomatik olarak ele alınır, programlar fark etmez). Bu beklenen bir davranıştır, bir hata değildir.

Genellikle şu seçeneklere sahipsiniz:

  • "temiz" yol: 32 bit modüller veya uzantılar kullanmanız gerekiyorsa 32 bit Python kullanın
  • diğer "temiz" yol: 64 bit Python kullanırken yalnızca 64 bit yükleyiciler kullanın (aşağıya bakın)
  • kopyasını: Hangi yanıt yukarıda da anlaşılacağı HKLM\SOFTWARE\Pythonüzere HKLM\SOFTWARE\wow6432node\Python, ancak bu olacak 64 bit Python 32 bit derlenmiş modülleri yükleyemez olarak, ikili dağılımları ile sorunlara neden (bunu yapmayın!)
  • distutils yükleyicisi yerine setuptools ile saf Python modülleri kurun (easy_install veya pip)

Örneğin, kurulum araçlarının kendisi için, ikili dosyalar içerdiğinden 64 bit Python için 32 bit yükleyici kullanamazsınız. Ancak http://www.lfd.uci.edu/~gohlke/pythonlibs/ adresinde 64 bit yükleyici var (diğer modüller için de birçok yükleyici var) . Günümüzde, PyPi'deki birçok paket ikili dağıtımlara sahiptir, böylece bunları pip yoluyla kurabilirsiniz.


7
Resmi olmayan montajcılar için harika bir bağlantı!
Andriy Drozdyuk

Teşekkürler. Amd64 ile Python 2.7 için sorunumu çözdü.
nmat

2
Aynı diğer etrafında şekilde (2.7 32 ve Setuptools 64) için de geçerli stackoverflow.com/a/10966396/404385 <- Yüklü ver piton ve 32/64 olduğunu öğrenmek için
Cu7l4ss

1
Bu bağlantı saf altın!
Paul Becotte

1
Bir whl dosyasını nasıl yükleyeceğini bilmeyenler için, pip kullanarak yükleyin, gibipip install xyz.whl
arun

69

Kayıt defterini sizin için otomatik olarak değiştirecek bir kayıt defteri (.reg) dosyası oluşturdum. "C: \ Python27" içine yüklenmişse çalışır:

32 bit sürümünü indir HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

64 bit sürümünü indirin HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\


3
REG dosyanız benim için çalıştı ama "\ Wow6432Node" tüm anahtar adlarından kaldırmak zorunda kaldı, bu yüzden ters bir sorun vardı.
pwhe23

Sanırım 32bit için bir link gönderebilirim ..: P
Joe DF

Müthiş yama dosyaları! Harika! Bunun için teşekkür ederim!!
Benny Neugebauer

@BennyNeugebauer Sorun değil.
Joe DF

@EvanCaldwell Sorun değil!
Joe DF

28

Evet, haklısınız, sorun 64-bit Python ve kurulum araçları için 32-bit yükleyicide.

Windows'ta 64 bit kurulum araçlarını almanın en iyi yolu ez_setup.py dosyasını C: \ Python27 \ Scripts'e indirip çalıştırmaktır. Setuptools için uygun 64-bit .egg dosyasını indirecek ve sizin için kuracaktır.

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

PS Üçüncü taraf 64-bit .exe kurulum araçlarını kullanmaya veya kayıt defterini değiştirmeye karşı öneriyorum


2
bu çözümün ne kadar hızlı ve kolay olduğuna inanamıyorum. Diğer caddelerde sıkışıp saatler geçirdim.
Brett

1
Bence en iyi ve en güvenli çözüm!
djfranzwa

9

python2.7.reg(Kayıt defteri dosyası) adlı bir dosya oluşturun ve bu içeriği içine yerleştirin:

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"

Ve her yolun doğru olduğundan emin olun!

Sonra çalıştırın ve birleştirin ve bitti :)


Teşekkürler! Python 2.76 ve h5py kurulumu için çalıştığını onaylayabilirim. Belki de iyi sipariş için doc yolunu python276.chm'ye güncelleyin :)
mork

9

Dosyası alın register.pygelen bu özünden . C sürücünüze veya D sürücünüze kaydedin, aşağıdakileri çalıştırmak için CMD'ye gidin:

'python register.py'

Sonra yükleyebileceksiniz.


Bu en basit çözüm. Teşekkürler! WxPython2.8-win32-unicode-2.8.12.1-py27 yüklemeye çalışırken bu sorunla karşılaştım ve her zaman kayıtlı python şikayet ediyor
Robert1968

3

Windows'ta 64 bit Python için ez_setup.py dosyasını indirin ve çalıştırın; uygun .egg dosyasını indirip sizin için kuracaktır.

.Exe yükleyicisi yazılırken, yükleyici uyumluluk sorunu nedeniyle Windows için Python'un 64 bit sürümlerini desteklemez .


bu aslında benim için çalıştı! Joe DF'nin diğer senaryosu benim için çalışmadı
wordsforthewise

1

Windows yükleyicilerinin Windows 7 , OR'de yüklü Python dizinini bulmasına izin vermek için , hangi Python kurulumunun bir yükleyici yükleyeceğini değiştirin, yüklü yolu InstallPath kayıt defteri anahtarının (Varsayılan) değerine ekleyin :

HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Python \ PythonCore \ 2.X \ Installpath

Burada " X ", Python versiyonudur (2.5, 2.6 veya 2.7).


1

Yukarıdaki denedim ve LOCALMACHINE kayıt defteri anahtarları ekleyerek iş başlamış değildi. Bu yüzden hala sıkışıp kalırsanız, bunu deneyin.

Windows Kayıt Defteri Düzenleyicisi Sürüm 5.00

[Hkey_current_user \ software \ piton]

[Hkey_current_user \ software \ Python \ PythonCore]

[Hkey_current_user \ software \ Python \ PythonCore \ 2,7]

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ Yardım]

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ Yardım \ Ana Python Belgeleri] @ = "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 \ modüller]

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

Yukarıdakileri not defterine yapıştırın ve Python27.reg kaydedin. Şimdi dosyayı yukarıdaki yanıtlarda belirtildiği gibi çalıştırın / birleştirin. (Python kurulum yollarının kurulumunuza göre düzeltildiğinden emin olun.

Yukarıdaki cevapların yerel bir makine için önerdiği mevcut kullanıcıya basitçe yapar.


0

İşte başka bir gönderi / konu bağlantısı. Python 2.7 kaydını otomatikleştirmek için bu komut dosyasını çalıştırabildim. ( .exeKaydetmek istediğiniz Python 2.x'ten çalıştırdığınızdan emin olun !)

Python 3.x kaydetmek için printSözdizimi değiştirmek ve winreg(yerine _winreg) almak zorunda , sonra Python 3 çalıştırmak zorunda kaldı .exe.

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


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.