จะอัพเดต Python ได้อย่างไร?


136

ฉันติดตั้งเวอร์ชัน 2.7 ตั้งแต่ต้นปี 2555 ฉันไม่พบความเห็นพ้องต้องกันว่าควรถอนการติดตั้งหรือไม่และล้างเวอร์ชันนี้ก่อนที่จะติดตั้งเวอร์ชันล่าสุด

"ซอฟท์" - การลบเวอร์ชันเก่า? รุ่นเก่าลบยาก / เช็ด? ติดตั้งด้านบน?

ฉันเคยเห็นกระบวนการติดตั้ง / อัปเกรดแบบพิเศษโดยใช้วิธีการ "แบ่งกลุ่ม" ของการติดตั้ง Python โดยแยกเวอร์ชันต่างๆออกจากกัน แต่ใช้งานได้ ไม่แน่ใจว่าเป็นมาตรฐานโดยพฤตินัยหรือไม่

ฉันยังสงสัยว่า Revo มีความกระตือรือร้นมากเกินไปหรือไม่และอาจทำให้เกิดปัญหาในการล้างเศษที่ยังคงจำเป็นเช่นตัวแปรสภาพแวดล้อม / เส้นทาง

(Win7 x64, Python 32 บิต)


1
2.7 ยังคงเป็นเวอร์ชันล่าสุดในซีรีส์ 2.x อยู่ดี 3.x เข้ากันไม่ได้ย้อนหลัง หากคุณต้องการอัปเกรดเป็นรุ่น 2.7 ปัจจุบันฉันจะติดตั้งที่ด้านบน
Eevee

คำตอบ:


108
อัพเดท : 2018-07-06

ตอนนี้โพสต์เกือบ 5 ขวบแล้ว! งูหลาม-2.7 จะหยุดได้รับการปรับปรุงอย่างเป็นทางการจาก python.org ในปี 2020 นอกจากนี้Python-3.7 ได้รับการเผยแพร่แล้ว ดูPython-Futureเกี่ยวกับวิธีทำให้โค้ด Python-2 เข้ากันได้กับ Python-3 สำหรับการอัปเดต conda ตอนนี้เอกสารแนะนำแนะนำให้ใช้conda update --allในสภาพแวดล้อม conda แต่ละรายการของคุณเพื่ออัปเดตแพ็กเกจทั้งหมดและไฟล์ปฏิบัติการ Python สำหรับเวอร์ชันนั้น นอกจากนี้เนื่องจากพวกเขาเปลี่ยนชื่อเป็น Anaconda ฉันไม่รู้ว่าคีย์รีจิสทรีของ Windows ยังคงเหมือนเดิมหรือไม่

อัพเดท : 2017-03-24

ไม่มีการอัปเดต Python (x, y) ตั้งแต่เดือนมิถุนายน 2015 ดังนั้นฉันคิดว่ามันปลอดภัยที่จะถือว่ามันถูกละทิ้ง

อัพเดท : 11-11-11

ตามความคิดเห็นของ @cxw ด้านล่างคำตอบเหล่านี้มีไว้สำหรับเวอร์ชันบิตเดียวกันและตามเวอร์ชันบิตฉันหมายถึง 64 บิตเทียบกับ 32 บิต ยกตัวอย่างเช่นคำตอบเหล่านี้จะนำไปใช้ปรับปรุงจาก 64 บิตหลาม-2.7.10 ถึง 64 บิตหลาม-2.7.11, เช่นที่: เดียวกันบิตรุ่น แม้ว่าจะเป็นไปได้ที่จะติดตั้ง Python เวอร์ชันบิตที่แตกต่างกันสองเวอร์ชันด้วยกัน แต่ก็จำเป็นต้องมีการแฮ็กดังนั้นฉันจะบันทึกแบบฝึกหัดนั้นไว้สำหรับผู้อ่าน หากคุณไม่ต้องการแฮ็คฉันขอแนะนำว่าหากต้องการเปลี่ยนเวอร์ชันบิตให้ลบเวอร์ชันบิตอื่นออกก่อน

การปรับปรุง : 2016-05-16
  • AnacondaและMiniCondaสามารถใช้กับการติดตั้ง Python ที่มีอยู่ได้โดยการปิดใช้งานตัวเลือกเพื่อแก้ไข Windows PATHและ Registry หลังจากการแตกไฟล์สร้าง symlink condaในbinหรือติดตั้ง conda จาก PyPI จากนั้นสร้าง symlink อื่นที่เรียกว่าconda-activateto activateในโฟลเดอร์ Anaconda / Miniconda root bin ตอนนี้ Anaconda / Miniconda ก็เหมือนกับ Ruby RVM เพียงแค่ใช้conda-activate rootเพื่อเปิดใช้งาน Anaconda / Miniconda
  • Portable Python ไม่ได้รับการพัฒนาหรือดูแลอีกต่อไป

TL; ดร

  • ใช้Anaconda หรือ minicondaจากนั้นดำเนินการconda update --allเพื่อให้สภาพแวดล้อม conda แต่ละรายการอัปเดต
  • Python อย่างเป็นทางการเวอร์ชันหลักเดียวกัน ( เช่น 2.7.5) เพียงแค่ติดตั้งมากกว่ารุ่นเก่า ( เช่น 2.7.4)
  • เวอร์ชันหลักที่แตกต่างกันของPython อย่างเป็นทางการ ( เช่น 3.3) ติดตั้งเคียงข้างกันกับรุ่นเก่ากำหนดเส้นทาง / การเชื่อมโยงให้ชี้ไปที่เด่น ( เช่น 2.7) ทางลัดไปยังอื่น ๆ ( เช่นใน BASH $ ln /c/Python33/python.exe python3)

คำตอบขึ้นอยู่กับ:

  1. หาก OP มี 2.7.x และต้องการติดตั้ง 2.7.x เวอร์ชันที่ใหม่กว่า

    • หากใช้ตัวติดตั้ง MSIจากเว็บไซต์ Python อย่างเป็นทางการเพียงแค่ติดตั้งทับเวอร์ชันเก่าโปรแกรมติดตั้งจะออกคำเตือนว่าจะลบและแทนที่เวอร์ชันเก่า ค้นหา "โปรแกรมที่ติดตั้ง" ใน "แผงควบคุม" ก่อนและหลังยืนยันว่าเวอร์ชันเก่าถูกแทนที่ด้วยเวอร์ชันใหม่ 2.7.x เวอร์ชันที่ใหม่กว่านั้นเข้ากันได้กับรุ่นเก่าดังนั้นจึงปลอดภัยอย่างสมบูรณ์ดังนั้น IMHO หลายเวอร์ชัน 2.7.x จึงไม่จำเป็น
    • หากสร้างจากแหล่งที่มาคุณควรสร้างในไดเร็กทอรีใหม่ที่สะอาดจากนั้นชี้เส้นทางของคุณไปยังบิลด์ใหม่เมื่อผ่านการทดสอบทั้งหมดและคุณมั่นใจว่าสร้างเสร็จเรียบร้อยแล้ว แต่คุณอาจต้องการเก็บข้อมูลเก่าไว้ สร้างขึ้นเนื่องจากการสร้างจากแหล่งที่มาอาจมีปัญหาในบางครั้ง ดูของฉันคู่มือสำหรับการสร้างหลาม x64 บน Windows 7 กับ SDK 7.0
    • หากติดตั้งจากการแจกจ่ายเช่นPython (x, y)โปรดดูที่เว็บไซต์ Python (x, y)ถูกละทิ้ง ฉันเชื่อว่าการอัปเดตสามารถจัดการได้จากภายใน Python (x, y) ด้วยตัวจัดการแพ็คเกจ แต่การอัปเดตจะรวมอยู่ในเว็บไซต์ด้วย ฉันไม่พบข้อมูลอ้างอิงที่เฉพาะเจาะจงดังนั้นอาจมีคนอื่นพูดถึงเรื่องนี้ คล้ายกับ ActiveState และอาจเป็น Enthought Python (x, y) ระบุอย่างชัดเจนว่ามันเข้ากันไม่ได้กับการติดตั้ง Python อื่น ๆ :

      ขอแนะนำให้ถอนการติดตั้งการแจกจ่าย Python อื่น ๆ ก่อนติดตั้ง Python (x, y)

    • Enthought Canopyใช้ MSI และจะติดตั้งลงในProgram Files\Enthoughtหรือhome\AppData\Local\Enthought\Canopy\Appสำหรับผู้ใช้ทั้งหมดหรือต่อผู้ใช้ตามลำดับ การติดตั้งที่ใหม่กว่าได้รับการอัปเดตโดยใช้เครื่องมืออัปเดตในตัว ดูพวกเขาเอกสาร
    • ActiveStateยังใช้ MSI เพื่อให้สามารถติดตั้งการติดตั้งที่ใหม่กว่ากับรุ่นเก่าได้ ดูพวกเขาหมายเหตุการติดตั้ง

      การติดตั้ง Python 2.7 อื่น ๆ บน Windows ActivePython 2.7 ไม่สามารถอยู่ร่วมกับการติดตั้ง Python 2.7 อื่น ๆ ได้ (ตัวอย่างเช่น Python 2.7 build จาก python.org) ถอนการติดตั้งการติดตั้ง Python 2.7 อื่น ๆ ก่อนติดตั้ง ActivePython 2.7

    • Sageขอแนะนำให้คุณติดตั้งลงในเครื่องเสมือนและจัดเตรียมไฟล์อิมเมจ Oracle VirtualBox ที่สามารถใช้เพื่อวัตถุประสงค์นี้ การอัพเกรดจะได้รับการจัดการภายในโดยการออกsage -upgradeคำสั่ง
    • สามารถอัปเดตcondaAnacondaได้โดยใช้คำสั่ง :

      conda update --all
      

      Anaconda / Miniconda ช่วยให้ผู้ใช้สร้างสภาพแวดล้อมเพื่อจัดการ Python หลายเวอร์ชันรวมถึง Python-2.6, 2.7, 3.3, 3.4 และ 3.5 การติดตั้งรูท Anaconda / Miniconda นั้นใช้ Python-2.7 หรือ Python-3.5

      อนาคอนด้าน่าจะขัดขวางการติดตั้ง Python อื่น ๆ การติดตั้งใช้โปรแกรมติดตั้ง MSI [ UPDATE : 2016-05-16] ขณะนี้ Anaconda และ Miniconda ใช้.exeโปรแกรมติดตั้งและมีตัวเลือกในการปิดใช้งานPATHการปรับเปลี่ยนWindows และ Registry

      ดังนั้นจึงสามารถติดตั้ง Anaconda / Miniconda ได้โดยไม่รบกวนการติดตั้ง Python ที่มีอยู่ขึ้นอยู่กับวิธีการติดตั้งและตัวเลือกที่เลือกระหว่างการติดตั้ง หากใช้ตัว.exeติดตั้งและตัวเลือกในการแก้ไข Windows PATHและ Registry ไม่ได้ปิดใช้งานการติดตั้ง Python ก่อนหน้านี้จะถูกปิดใช้งานแต่เพียงแค่ถอนการติดตั้งการติดตั้ง Anaconda / Miniconda ก็ควรคืนค่าการติดตั้ง Python ดั้งเดิมยกเว้นPython\PythonCoreคีย์Windows Registry

      Anaconda / Miniconda ทำให้การแก้ไขรีจิสทรีต่อไปนี้โดยไม่คำนึงถึงตัวเลือกการติดตั้ง: HKCU\Software\Python\ContinuumAnalytics\ด้วยปุ่มต่อไปนี้: Help, InstallPath, ModulesและPythonPath- อย่างเป็นทางการหลามลงทะเบียนปุ่มเหล่านี้มากเกินไป Python\PythonCoreแต่ภายใต้ นอกจากนี้ยังมีการลงทะเบียนข้อมูลการถอนการติดตั้งสำหรับ Anaconda \ Miniconda หากคุณไม่เลือกตัวเลือก "ลงทะเบียนกับ Windows" ระหว่างการติดตั้งจะไม่สร้างPythonCoreดังนั้นการผสานรวมเช่น Python Tools for Visual Studio จะไม่เห็น Anaconda / Miniconda โดยอัตโนมัติ ถ้าตัวเลือกในการลงทะเบียน Anaconda / Miniconda ถูกเปิดใช้งานแล้วฉันคิดว่ากุญแจหลาม Windows Registry ของคุณที่มีอยู่จะได้รับการเปลี่ยนแปลงและยกเลิกการติดตั้งอาจจะไม่เรียกคืนได้

    • WinPythonการปรับปรุงผมคิดว่าสามารถจัดการได้ผ่านแผงควบคุม WinPython
    • PortablePythonจะไม่ได้รับการพัฒนา มันไม่มีวิธีการอัพเดต เป็นไปได้ว่าการอัปเดตอาจถูกคลายซิปลงในไดเร็กทอรีใหม่จากนั้นApp\lib\site-packagesและApp\Scriptsสามารถคัดลอกไปยังการติดตั้งใหม่ได้ แต่หากไม่ได้ผลการติดตั้งแพ็คเกจทั้งหมดใหม่อาจมีความจำเป็น ใช้pip listเพื่อดูว่ามีการติดตั้งแพ็กเกจและเวอร์ชันใดบ้าง บางตัวถูกติดตั้งโดย PortablePython ใช้easy_install pipเพื่อติดตั้ง pip หากไม่ได้ติดตั้ง
  2. หาก OP มี 2.7.x และต้องการติดตั้งเวอร์ชันอื่นเช่น <= 2.6.x หรือ> = 3.xx การติดตั้งเวอร์ชันต่างๆแบบเคียงข้างกันก็ใช้ได้ คุณต้องเลือกรุ่นของงูหลาม (ถ้ามี) เพื่อเชื่อมโยงกับ*.pyไฟล์และที่คุณต้องการบนเส้นทางของคุณ แต่คุณควรจะสามารถที่จะตั้งค่าเปลือกหอยที่มีเส้นทางที่แตกต่างกันถ้าคุณใช้ทุบตี AFAIK 2.7.x เข้ากันได้กับ 2.6.x ดังนั้นจึงไม่จำเป็นต้องติดตั้ง IMHO แบบเคียงข้างกันอย่างไรก็ตาม Python-3.xx ไม่สามารถทำงานร่วมกันได้แบบย้อนกลับดังนั้นคำแนะนำของฉันคือวาง Python-2.7 บนเส้นทางของคุณและมี Python-3 เป็นเวอร์ชันเสริมโดยสร้างทางลัดไปยังไฟล์ปฏิบัติการที่เรียกว่า python3 (เป็นการตั้งค่าทั่วไปบน Linux) เส้นทางการติดตั้งเริ่มต้นของ Python อย่างเป็นทางการบน Windows คือ

    • C: \ Python33 สำหรับ 3.3.x (ล่าสุด 2013-07-29)
    • C: \ Python32 สำหรับ 3.2.x
    • &ค.
    • C: \ Python27 สำหรับ 2.7.x (ล่าสุด 2013-07-29)
    • C: \ Python26 สำหรับ 2.6.x
    • &ค.
  3. หาก OP ไม่ได้อัปเดต Python แต่เป็นเพียงการอัปเดตแพ็กเกจพวกเขาอาจต้องการตรวจสอบVirtualenvเพื่อแยกแพ็กเกจเวอร์ชันต่างๆเฉพาะสำหรับโปรเจ็กต์การพัฒนาออกจากกัน Pipยังเป็นเครื่องมือที่ยอดเยี่ยมในการอัปเดตแพ็คเกจ หากแพ็กเกจใช้ตัวติดตั้งไบนารีฉันมักจะถอนการติดตั้งแพ็กเกจเก่าก่อนที่จะติดตั้งแพ็กเกจใหม่

ฉันหวังว่าสิ่งนี้จะช่วยขจัดความสับสน


1
สวัสดีมาร์คฉันมีคำถามมือใหม่ คุณเชื่อหรือไม่ว่าการอัปเกรดจาก 2.7.x เป็น 3.3.x นั้นสำคัญจริง ๆ ฉันเริ่มใช้ python และติดตั้งเวอร์ชันเก่าแล้ว แต่ตั้งแต่ฉันเริ่มฉันต้องการเรียนรู้เวอร์ชันใหม่ล่าสุด (เว้นแต่จะมีความแตกต่างเล็กน้อยเท่านั้น) คุณเรียกร้องเรื่องนี้คืออะไร? ขอบคุณสำหรับความช่วยเหลือของคุณ.
Matteo

7
ฉันจะใช้ทั้งสองอย่าง ถ้าคุณอยู่ใน MS Windows คุณจะได้รับในโฟลเดอร์รากของคุณC:\Python27และC:\Python33ถ้าคุณอยู่บน Mac คุณจะเห็น/Library/Frameworks/Python/Versions/2.7.xและ/Library/Frameworks/Python/Versions/3.3.xและถ้าคุณอยู่ในลินุกซ์ที่คุณอาจมีอยู่แล้วทั้งการติดตั้ง ประเพณีคือการใช้ Python-2.7 และ symlink ไบนารีสำหรับงูใหญ่ python333.3 ดูPython2orPython3และPython 2 vs Python 3ด้วย ฉันเองขี้เกียจเกินไปที่จะเปลี่ยนเป็น 3.3
Mark Mikofski

2
ขอบคุณสำหรับคำตอบโดยละเอียด! ด้วย 2.7 การติดตั้งแบบเก่าไม่ทำงานเมื่อหนึ่งเป็น 32 บิตและอีก 64 บิต ฉันสรุปสองรายการใน "โปรแกรมและคุณลักษณะ" ทั้งสองรายการชี้ไปที่ C: \ Python27 คุณยินดีที่จะเพิ่มคำตอบของคุณว่า folks ควรเขียนทับ 32 ด้วย 32 และ 64 ด้วย 64 เท่านั้นหรือไม่? ขอบคุณ!
cxw

1
@cxw ขอบคุณสำหรับคำติชม หากคุณต้องการมีทั้ง 32 และ 64 ด้วยกันมีหลายวิธี น่าจะเป็นวิธีที่ง่ายที่สุดคือการใช้สิ่งที่เรียกว่า"ผู้ดูแลระบบ" การติดตั้งของรุ่น 32 บิตเข้าจากบรรทัดคำสั่ง:C:\Python27_x86 msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.logอีกตัวเลือกหนึ่งคือการสร้างจากแหล่งหรือลองBootstrap หลาม
Mark Mikofski

1
ตัวติดตั้ง MSI บอกว่าจะแทนที่โฟลเดอร์ 2.7 แต่ถ้าคุณเก็บ scrips อื่นไว้ในโฟลเดอร์รูท 2.7 มันจะไม่ลบมัน;)
XXN

6

ทางออกที่ดีที่สุดคือการติดตั้ง Python เวอร์ชันต่างๆในหลายเส้นทาง

เช่น. C: \ Python27 สำหรับ 2.7 และ C: \ Python33 สำหรับ 3.3

อ่านข้อมูลเพิ่มเติมได้ที่: วิธีเรียกใช้ Python หลายเวอร์ชันบน Windows


นี่คือวิธีที่ฉันทำ ฉันใช้ python 2.7.xx และ 3.5.xx และ IronPython 2.7.xx ทั้ง 32 และ 64 บิต ฉันใช้ Eclipse ในการพัฒนาและเลือกพา ธ python เมื่อทำการดีบัก เมื่อเรียกใช้สคริปต์ฉันเพียงแค่กำหนดเส้นทางไปยังเวอร์ชันล่ามที่ฉันต้องการใช้ การอัปเดต 3.5.0 ถึง 3.5.3 นำเสนอตัวเลือกการอัปเดตอย่างง่ายเป็นการติดตั้งใหม่
Bill Kidd

5
  • โปรแกรมติดตั้ง Python .msi อย่างเป็นทางการได้รับการออกแบบมาเพื่อแทนที่:

    • ไมโครรีลีสก่อนหน้าใด ๆ (ในxyz , zคือ "ไมโคร") เนื่องจากได้รับการรับรองว่าเข้ากันได้กับรุ่นเก่าและเข้ากันได้กับไบนารี
    • การติดตั้ง "สแน็ปช็อต" (สร้างจากแหล่งที่มา) พร้อมกับเวอร์ชันไมโคร
  • โปรแกรมติดตั้งสแน็ปช็อตได้รับการออกแบบมาเพื่อแทนที่สแน็ปช็อตด้วยไมโครเวอร์ชันที่ต่ำกว่า

(ดูรหัสรับผิดชอบในการ 2.x , สำหรับ 3.x )

เวอร์ชันอื่น ๆ ไม่จำเป็นต้องเข้ากันได้ดังนั้นจึงติดตั้งควบคู่ไปกับเวอร์ชันที่มีอยู่ หากคุณต้องการถอนการติดตั้งเวอร์ชันเก่าคุณจะต้องดำเนินการด้วยตนเอง และถอนการติดตั้งโมดูลของบุคคลที่สามที่คุณมีด้วย:

  • หากคุณติดตั้งโมดูลใด ๆ จากbdist_wininstแพ็คเกจ (Windows .exe) ให้ถอนการติดตั้งก่อนที่จะถอนการติดตั้งเวอร์ชันมิฉะนั้นโปรแกรมถอนการติดตั้งอาจทำงานไม่ถูกต้องหากมีตรรกะที่กำหนดเอง
  • โมดูลที่ติดตั้งsetuptools/ pipที่อยู่ในLib\site-packagesสามารถลบได้ในภายหลัง
  • แพ็กเกจที่คุณติดตั้งต่อผู้ใช้หากมีอยู่%APPDATA%/Python/PythonXY/site-packagesและสามารถลบได้เช่นเดียวกัน

1

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


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