การติดตั้ง SetupTools บน Windows 64 บิต


133

ฉันใช้ Python 2.7 บน Windows 7 64 บิตและเมื่อฉันเรียกใช้ตัวติดตั้งสำหรับ 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 และไม่ได้กล่าวถึงตัวติดตั้งใด ๆ สำหรับ Windows 64 บิต ฉันพลาดอะไรไปหรือฉันต้องติดตั้งจากแหล่งที่มา?


7
หมายเหตุสำหรับผู้อ่าน: เลื่อนลงคำตอบที่ยอมรับไม่ใช่คำตอบที่ดีที่สุด

น่าเสียดายที่ไม่มีตัวติดตั้ง SetupTools 64 บิตเมื่อฉันโพสต์คำถามของฉันดังนั้นฉันจึงยอมรับวิธีแก้ปัญหาโดยรู้ดีว่าเป็นการแฮ็ก
quanticle

2
@JohnRobertson คำตอบที่ดีที่สุดคืออะไร?
rrs

คำตอบ:


91

เห็นได้ชัด (หลังจากที่ต้องเผชิญกับปัญหาที่เกี่ยวข้อง 64 และ 32 บิตบน OS X) มีข้อผิดพลาดในการติดตั้งของ 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) ด้วย
panny

142

ปัญหา: คุณมี Python 64 บิตและตัวติดตั้ง 32 บิต ซึ่งจะทำให้เกิดปัญหากับโมดูลส่วนขยาย

สาเหตุที่โปรแกรมติดตั้งไม่พบ Python คือการจำลอง 32 บิตแบบโปร่งใสจาก Windows 7 โปรแกรม 64 บิตและ 32 บิตจะเขียนลงในส่วนต่างๆของรีจิสทรีของ Windows

64 บิต: HKLM|HKCU\SOFTWARE\

32 บิต: HKLM|HKCU\SOFTWARE\wow6432node\.

ซึ่งหมายความว่าโปรแกรมติดตั้ง Python 64 บิตเขียนถึงHKLM\SOFTWARE\Pythonแต่ตัวติดตั้ง setuptools 32 บิตมองไปที่HKLM\SOFTWARE\wow6432node\Python(สิ่งนี้จัดการโดย windows โดยอัตโนมัติโปรแกรมไม่สังเกตเห็น) นี่เป็นพฤติกรรมที่คาดหวังไม่ใช่ข้อบกพร่อง

โดยปกติคุณมีทางเลือกเหล่านี้:

  • วิธี "ล้าง": ใช้ Python 32 บิตหากคุณต้องใช้โมดูลหรือส่วนขยาย 32 บิต
  • อีกวิธีหนึ่งที่ "สะอาด": ใช้ตัวติดตั้ง 64 บิตเมื่อใช้ Python 64 บิตเท่านั้น (ดูด้านล่าง)
  • สิ่งที่คำตอบข้างต้นแนะนำ: คัดลอกHKLM\SOFTWARE\PythonไปHKLM\SOFTWARE\wow6432node\Pythonแต่จะทำให้เกิดปัญหากับการแจกแจงไบนารีเนื่องจาก Python 64 บิตไม่สามารถโหลดโมดูลที่คอมไพล์ 32 บิตได้ (อย่าทำสิ่งนี้!
  • ติดตั้งโมดูล Python แท้พร้อม setuptools แทนตัวติดตั้ง distutils (easy_install หรือ pip)

ตัวอย่างเช่นสำหรับ setuptools คุณไม่สามารถใช้ตัวติดตั้ง 32 บิตสำหรับ Python 64 บิตเนื่องจากมีไฟล์ไบนารี แต่มีการติดตั้ง 64 บิตที่http://www.lfd.uci.edu/~gohlke/pythonlibs/ (มีการติดตั้งจำนวนมากสำหรับโมดูลอื่น ๆ มากเกินไป) ปัจจุบันแพ็คเกจจำนวนมากบน PyPi มีการแจกแจงแบบไบนารีดังนั้นคุณสามารถติดตั้งผ่าน pip ได้


7
ลิงค์ที่ยอดเยี่ยมสำหรับผู้ติดตั้งที่ไม่เป็นทางการ!
Andriy Drozdyuk

ขอบคุณ. แก้ไขปัญหาของฉันสำหรับ Python 2.7 ด้วย amd64
nmat

2
ไปในทางเดียวกัน (2.7 32 และ setuptools 64) stackoverflow.com/a/10966396/404385 <- เพื่อดูว่า python ver ที่ติดตั้งและ 32/64 ของคุณคืออะไร
Cu7l4ss

1
ลิงค์นั้นคือทองคำบริสุทธิ์!
Paul Becotte

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

ฉันเดาว่าฉันสามารถโพสต์ลิงค์สำหรับ 32 บิต .. : P
Joe DF

ไฟล์แพทช์สุดเจ๋ง! เยี่ยมมาก! ขอบคุณสำหรับสิ่งนั้น!!
Benny Neugebauer

@BennyNeugebauer ไม่มีปัญหา
Joe DF

@EvanCaldwell ไม่มีปัญหา!
Joe DF

28

ใช่คุณถูกต้องปัญหาเกิดจาก Python 64 บิตและโปรแกรมติดตั้ง 32 บิตสำหรับ setuptools

วิธีที่ดีที่สุดในการติดตั้ง setuptools 64 บิตบน Windows คือดาวน์โหลดez_setup.pyไปที่ C: \ Python27 \ Scripts และเรียกใช้ มันจะดาวน์โหลดไฟล์. egg 64 บิตที่เหมาะสมสำหรับ setuptools และติดตั้งให้คุณ

ที่มา: http://pypi.python.org/pypi/setuptools

ปล. ขอแนะนำไม่ให้ใช้โปรแกรมติดตั้ง setuptools .exe 64 บิตของบุคคลที่สามหรือจัดการกับรีจิสทรี


2
ไม่อยากจะเชื่อเลยว่าวิธีนี้รวดเร็วและง่ายดายเพียงใด ฉันใช้เวลาหลายชั่วโมงติดอยู่บนลู่ทางอื่น ๆ
Brett

1
ทางออกที่ดีและปลอดภัยที่สุดในความคิดของฉัน!
djfranzwa

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 อาจจะแค่อัปเดตเส้นทาง doc เป็น python276.chm เพื่อความเป็นระเบียบที่ดี :)
mork

9

รับไฟล์register.pyจากส่วนสำคัญนี้ บันทึกลงในไดรฟ์ C หรือไดรฟ์ D ไปที่ CMD เพื่อเรียกใช้ด้วย:

'python register.py'

จากนั้นคุณจะสามารถติดตั้งได้


นี่เป็นทางออกที่ง่ายที่สุด ขอบคุณ! ฉันพบปัญหานี้เมื่อพยายามติดตั้ง wxPython2.8-win32-unicode-2.8.12.1-py27 และมันก็บ่นกับ python ที่ไม่ได้ลงทะเบียน
Robert1968

3

สำหรับ Python 64 บิตบน Windows ให้ดาวน์โหลดez_setup.pyและเรียกใช้ มันจะดาวน์โหลดไฟล์. Egg ที่เหมาะสมและติดตั้งให้คุณ

ในขณะที่เขียนโปรแกรมติดตั้ง .exe ไม่สนับสนุนรุ่น 64 บิตของงูใหญ่สำหรับ Windows เนื่องจากdistutils ติดตั้งปัญหาความเข้ากัน


อันนี้ใช้ได้จริงสำหรับฉัน! สคริปต์อื่น ๆ โดย Joe DF ไม่ได้ผลสำหรับฉัน
พูดใน

1

ในการอนุญาตให้ตัวติดตั้ง Windows ค้นหาไดเร็กทอรี Python ที่ติดตั้งในWindows 7หรือเปลี่ยนการติดตั้ง Python ที่จะติดตั้งโปรแกรมติดตั้งเพิ่มพา ธ ที่ติดตั้งลงในค่า (ค่าเริ่มต้น)ของคีย์รีจิสทรีInstallPath :

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

โดยที่ " X " คือเวอร์ชัน Python (นั่นคือ 2.5, 2.6 หรือ 2.7)


1

ฉันลองข้างต้นแล้วและการเพิ่มคีย์รีจิสทรีใน LOCALMACHINE ก็ไม่ได้งานทำ ดังนั้นในกรณีที่คุณยังติดขัดให้ลองทำเช่นนี้

Windows Registry Editor เวอร์ชัน 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] @ = "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"

คัดลอกวางด้านบนใน notepad และบันทึกเป็น Python27.reg ตอนนี้เรียกใช้ / รวมไฟล์ตามที่กล่าวไว้ในคำตอบด้านบน (ตรวจสอบให้แน่ใจว่าเส้นทางของการติดตั้ง Python ได้รับการแก้ไขตามการติดตั้งของคุณ

เพียงแค่ทำสิ่งที่คำตอบข้างต้นแนะนำสำหรับเครื่องท้องถิ่นให้กับผู้ใช้ปัจจุบัน


0

นี่คือลิงค์ไปยังโพสต์ / เธรดอื่น ฉันสามารถเรียกใช้สคริปต์นี้เพื่อลงทะเบียน Python 2.7 โดยอัตโนมัติ (อย่าลืมเรียกใช้จาก Python 2.x ที่.exeคุณต้องการลงทะเบียน!)

หากต้องการลงทะเบียนหลาม 3.x ผมต้องปรับเปลี่ยนprintไวยากรณ์และนำเข้าwinreg(แทน_winreg) จากนั้นเรียกใช้งูหลาม .exe3

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.