การอัพเกรดเป็น python 2.7.5 บน Ubuntu 12.04


9

Ubuntu 12.04 มาพร้อมกับpython v 2.7.3ค่าเริ่มต้น v 2.7.5ฉันต้องการที่จะอัพเกรดไป ฉันพยายามคำแนะนำที่ให้ไว้ในคำถามนี้ ,

sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

คำสั่งสุดท้ายล้มเหลวด้วยข้อผิดพลาด:

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

ฉันจะทำการอัพเกรดนี้ได้อย่างไร?


3
คุณแน่ใจหรือไม่ว่าคุณต้องการอัปเกรดเป็น 2.7.5 การแก้ไขข้อบกพร่องทั้งหมดจะถูก backported เป็น 2.7.3 ใน Ubuntu คุณต้องการช่วยให้คุณปวดหัวจริงๆด้วยการรวบรวมจากแหล่งที่มา โปรดระบุเหตุผลที่เฉพาะเจาะจงสำหรับการติดตั้ง 2.7.5 ในเว็บไซต์นี้มีคำถามเกี่ยวกับการติดตั้ง Python ที่ใช้งานไม่ได้เป็นธุรกิจรายวันและเป็นเรื่องธรรมดาที่จะเห็นว่าเกิดจากการติดตั้งจากแหล่งที่มา ดูตัวอย่างaskubuntu.com/q/323248/88802
gertvdijk

1
ฉันใช้แพคเกจผิดวิธี แต่คำถามยังคงอยู่และฉันไม่เข้าใจ downvote จริง ๆ โดยไม่ได้รับคำอธิบาย
กาเบรียล

จะเกิดอะไรขึ้นเมื่อคุณเรียกsudo make **install**แทนsudo make **altinstall**? คุณได้รับข้อผิดพลาดเดียวกันหรือไม่
Kevin Bowen

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

2
@Gabriel การแก้ปัญหาโดย maggotbrain เป็นสิ่งที่ดีมาก อนุญาตให้คุณติดตั้งเวอร์ชันที่คุณเลือกใน pyenv ไม่มีอันตรายใด ๆ บน Python ของระบบของคุณ ฉันจะจำสิ่งนี้สำหรับคำถามในอนาคต :)
gertvdijk

คำตอบ:


13

แน่นอนว่าการติดตั้งจากซอร์สนั้นสามารถทำได้ แต่ฉันลังเลที่จะอัพเกรดแพ็คเกจไพ ธ อนระบบ Ubuntu จากหลายสาเหตุ:

  1. การทำเช่นนั้นอาจทำลายระบบโดยการรวบรวมจากแหล่งโดยตรง (ฉันไม่แน่ใจว่า Ubuntu ปรับแต่งแพ็คเกจ Python ของพวกเขาอย่างไร)

  2. ฉันกังวลว่าอาจมีปัญหากับการใช้โมดูลจากที่เก็บข้อมูลในอนาคต

มีPPAที่ดูเหมือนว่าใช้งานอยู่ (รถไฟ 2.7.x ถูกสร้างขึ้นครั้งล่าสุดในเดือนเมษายนของปีนี้) แต่ PPA ยังไม่มีรุ่น 2.7.5 คุณอาจต้องการ ping ผู้ดูแลและดูว่าแผนของพวกเขาคืออะไรสำหรับการสร้างในอนาคตและหากพวกเขากำลังจะรวมหนึ่งสำหรับ 2.7.5 ถ้าเป็นไปได้ฉันจะแนะนำสิ่งนี้มากกว่าการติดตั้งจากแหล่งที่มา เช่นเดียวกับซอฟต์แวร์ใหม่ฉันขอแนะนำให้สร้างสิ่งนี้บนระบบทดสอบก่อน

อีกตัวเลือกหนึ่งคือใช้ sandbox ( pyenv) เพื่อเรียกใช้แพคเกจซอฟต์แวร์ที่ยังไม่ผ่านการทดสอบใหม่ การติดตั้งตรงเข้าสู่ระบบของคุณอาจส่งผลเสียต่อการทำงานของเครื่องของคุณ

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

pyenvแพคเกจให้การทำงานต่อไปนี้:

  • ให้คุณเปลี่ยนเวอร์ชัน Python ทั่วโลกแบบต่อผู้ใช้
  • ให้การสนับสนุนเวอร์ชัน Python สำหรับแต่ละโปรเจ็กต์
  • ช่วยให้คุณสามารถแทนที่รุ่น Python ด้วยตัวแปรสภาพแวดล้อม
  • ค้นหาคำสั่งจาก Python หลายรุ่นพร้อมกัน

การติดตั้ง

  1. ตรวจสอบ pyenv เป็น ~ / .pyenv

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. เพิ่ม ~ / .pyenv / bin ไปยัง $ PATH ของคุณเพื่อเข้าถึงยูทิลิตีบรรทัดคำสั่ง pyenv

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    บันทึก zsh: ปรับเปลี่ยนของไฟล์แทน~/.zshenv~/.bash_profile

  3. เพิ่ม pyenv init ให้กับเชลล์ของคุณเพื่อเปิดใช้งาน shims และเติมข้อความอัตโนมัติ

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    บันทึก zsh: ปรับเปลี่ยนของไฟล์แทน~/.zshenv~/.bash_profile

  4. รีสตาร์ทเชลล์ของคุณเพื่อให้การเปลี่ยนแปลงพา ธ มีผล ตอนนี้คุณสามารถเริ่มใช้ pyenv ได้แล้ว

    exec $SHELL
  5. ติดตั้งเวอร์ชัน Python ลงใน ~ / .pyenv / รุ่น ตัวอย่างเช่นในการติดตั้ง Python 2.7.5 ดาวน์โหลดและแกะแหล่งที่มาแล้วเรียกใช้:

    pyenv install 2.7.5

    หมายเหตุหากคุณต้องการผ่านตัวเลือกการกำหนดค่าเพื่อสร้างจากแหล่งที่มาโปรดใช้ตัวแปรสภาพแวดล้อม CONFIGURE_OPTS

  6. สร้างไบนารี shim คุณควรทำเช่นนี้เมื่อใดก็ตามที่คุณติดตั้งไบนารี Python ใหม่ (ตัวอย่างเช่นเมื่อติดตั้งเวอร์ชัน Python ใหม่หรือเมื่อติดตั้งแพ็คเกจที่มีไบนารี)

    pyenv rehash

1
pyenvยอดเยี่ยมมากด้วยเหตุผลหลายประการ ช่วยให้ฉันกับการทดลองของฉันอย่างมากกับความยุ่งยากน้อยที่สุดหลังจากการตั้งค่าเริ่มต้น
Fahad Yousuf

สิ่งนี้จะถูกเรียกใช้จากhomeโฟลเดอร์เฉพาะของผู้ใช้หรือไม่ ฉันจะติดตั้งสิ่งนี้กับผู้ใช้ทุกคนได้อย่างไร ฉันสามารถติดตั้ง./pyenvใน/usr/local/binหรือว่าเป็นความคิดที่ไม่ดี?
Biohazard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.