วิธีอัพเกรด pupt setuptools> 12.2 บน Ubuntu 15.04


11

แพ็คเกจ apt น่าจะเป็น 12.2

หากฉันเรียกใช้ sudo pip install -U setuptools รุ่นดูเหมือนว่าจะยังคงติดอยู่ที่ 12.2

$ python
>>> import pkg_resources
>>> r = pkg_resources.require(["setuptools"])[0]
>>> print("setuptools version: %s" % r.version)
setuptools version: 12.2

[แก้ไข]

เพิ่งสังเกตเห็นว่ามันจะไม่เขียนทับ setuptools เวอร์ชัน OS:

Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.2-py2.py3-none-any.whl#md5=5ff9fec0be479e4e36df467556deed4d
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Downloading/unpacking setuptools from https://pypi.python.org/packages/3.4/s/setuptools/setuptools-18.3.2-py2.py3-none-any.whl#md5=58c1e15fe0c124ab0880a2691f232434
  Downloading setuptools-18.3.2-py2.py3-none-any.whl (462kB): 462kB downloaded
Installing collected packages: pip, setuptools
  Found existing installation: pip 1.5.6
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, owned by OS
  Found existing installation: setuptools 12.2
    Not uninstalling setuptools at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed pip setuptools
Cleaning up...

[/ แก้ไข]


1
sudo pip install -U pip setuptools
AB

@AB เพิ่งลองและสังเกตเห็นว่ามันจะไม่เขียนทับเวอร์ชั่นของระบบปฏิบัติการ ... นี่น่าจะเป็นปัญหา ..
Stuart Axon

คำตอบ:


18
  1. ลบเวอร์ชันที่เก็บ

    sudo apt-get remove python-setuptools
  2. หากจำเป็นให้ติดตั้งpipอีกครั้ง

    wget https://bootstrap.pypa.io/get-pip.py
    sudo -H python get-pip.py
  3. ติดตั้งsetuptoolsผ่านpip

    sudo -H pip install -U pip setuptools

และตอนนี้เริ่มคุณทดสอบอีกครั้ง

% python
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg_resources
>>> r = pkg_resources.require(["setuptools"])[0]
>>> print("setuptools version: %s" % r.version)
setuptools version: 18.3.2

บันทึก

การติดตั้งแพคเกจใด ๆ ที่ขึ้นอยู่กับpython-setuptoolsหรือpython-pipจะนำแพ็คเกจเหล่านี้กลับมาดังนั้นคุณอาจต้องทำซ้ำขั้นตอนนี้!


ทำงานบน Centos เช่นกัน
Abhishek Dujari

2

วิธีแก้ปัญหาที่เสนอโดย AB อาจไม่เพียงพอ: ในเวอร์ชั่นล่าสุดของ setuptools pkg_resourcesเป็นแพ็กเกจในขณะที่ก่อนหน้านี้มันเป็นเพียงโมดูลเดียว

การอัปเดตsetuptoolsในทางที่อธิบายไว้จะปล่อยให้ค้างpkg_resources.py{,c}รอบซึ่งอาจนำไปสู่ข้อผิดพลาดต่อไปนี้เมื่อนำเข้าsetuptools:

AttributeError: 'module' object has no attribute 'packaging'

หากต้องการลบออกให้ทำดังต่อไปนี้:

  1. ค้นหาที่ตั้งของpkg_resourcesโมดูลที่ล้าสมัย:

    $ python -c 'import pkg_resources; print(pkg_resources.__file__)'
    /usr/lib/python2.7/dist-packages/pkg_resources.pyc
  2. ลบไฟล์นี้และ.pyไฟล์:

    $ sudo rm /usr/lib/python2.7/dist-packages/pkg_resources.py*

คำเตือน

ไฟล์นี้อาจถูกติดตั้งผ่านpython-pkg-resourcesแพ็คเกจ ดังนั้นการอัปเดตหรือติดตั้งแพคเกจนี้จะคืนสถานะโมดูลเก่า! aptนอกจากนี้ยังทราบว่าคุณกำลังล้อเล่นกับไฟล์ซึ่งควรจะได้รับการควบคุมโดย


1
ฉันตอบรับ AB เพราะมันเป็นวิธีที่ดีที่สุด แต่ถ้าฉันสามารถยอมรับทั้งสองฉันจะ - ฉันยังไม่มีโอกาสลองทำเช่นนี้เนื่องจากฉันได้อัพเกรดอูบุนตูมาแล้วและมีความสับสนเล็กน้อยเกี่ยวกับการล้อเล่นกับ setuptools ฉันอาจต้องลองมันในเครื่องเสมือนเพื่อดูว่าเกิดอะไรขึ้น
Stuart Axon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.