pip จะไม่ทำงาน พ่นข้อผิดพลาดแทน


18

ฉันพบปัญหาเมื่อpipมีข้อโต้แย้งหรือการตั้งค่าสถานะใด ๆ ฉันได้ลองทำแล้วapt-get install --reinstall python-pipแต่มันก็ไม่ได้ช่วยอะไรฉันได้บ้าง

เวอร์ชันของ Ubuntu

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:    14.04
Codename:   trusty

เวอร์ชั่นของ Python

$ python --version
Python 2.7.6

เวอร์ชั่น Pip

$ dpkg -l | grep pip
ii  python-pip     1.5.4-1     all     alternative Python package installer

ข้อผิดพลาดฉันได้รับข้อผิดพลาดเดียวกันแน่นอนไม่ว่าฉันจะพยายามโต้แย้ง

$ pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==1.5.4', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 351, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2363, in   load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2088, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 11, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 25, in <module>
    from requests.compat import IncompleteRead
ImportError: cannot import name IncompleteRead

สิ่งที่อาจแก้ไขได้เช่นนี้คือeasy_install -U pip...
ผู้บัญชาการ Byte

easy_install -U pip จากข้อเสนอแนะ ByteCommander ทำงานให้ฉัน
แทมปา

คำตอบนี้ใช้ได้สำหรับ Linux (Ubuntu)
Tobi Obadiah

คำตอบ:


15

ดูเหมือนจะเป็นข้อผิดพลาดที่มีการรายงานที่นี่

มันควรจะทำงานถ้าคุณติดตั้งรุ่นที่ใหม่pipกว่า

คุณสามารถลบการpipติดตั้งปัจจุบันด้วย:

sudo apt-get purge python-pip

จากนั้นติดตั้งจาก GitHub (เป็นรุ่นที่ใหม่กว่า):

wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py

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

ในการเปิดใช้งานการใช้pipจากบรรทัดคำสั่งตรวจสอบให้แน่ใจว่าไดเรกทอรีย่อย Scripts ของการติดตั้ง Python ของคุณพร้อมใช้งานบน PATH ของระบบ (สิ่งนี้ไม่ได้ทำโดยอัตโนมัติ)

อ้างอิง:

  1. https://pip.pypa.io/en/latest/installing.html
  2. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1306991

2
นี่ไม่ควรปิด !!! แทนที่จะ wgetting ว่าไฟล์ GitHub ดิบทำตามpip.pypa.io/en/latest/installing.html สั้น ๆ บอกว่า 1. wget https://bootstrap.pypa.io/get-pip.pyจากนั้น 2sudo python get-pip.py
Csaba Toth

3

ปัญหานี้เกิดจากการที่ไม่ตรงกันระหว่างการติดตั้ง pip และการติดตั้งคำขอของคุณ ขั้นแรกให้ลบแพ็คเกจ python-pip ออกแล้วติดตั้ง pip เวอร์ชั่นล่าสุด เปิดเทอร์มินัลแล้วพิมพ์:

sudo apt remove python-pip
sudo apt install python-setuptools
sudo easy_install -U pip

การอัปเดต pip หลาม 3.x แทนที่python-pipด้วยpython3-pipแทนที่python-setuptoolsด้วยpython3-setuptoolsและแทนที่ด้วยeasy_installeasy_install3


2

สคริปต์ get-pip.py จาก github นั้นล้าสมัยแล้วและเวอร์ชันล่าสุดจะอยู่ใน pypa ดังนี้:

sudo apt-get purge python-pip

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

การติดตั้งใช้งานได้ แต่ไม่พบ pip เมื่อฉันพิมพ์ pip ในบรรทัดคำสั่งฉันจะได้รับbash: /usr/bin/pip: No such file or directory
mcExchange

ลองใช้sudo python get-pip.pyอาจช่วยได้ (ตอนนี้ฉันเป็นผู้ใช้ macOS ขออภัยที่ไม่มีการทดสอบ env)
sstruct

1

ฉันมีข้อผิดพลาดเดียวกันและ Ubuntu รุ่นเดียวกัน easy_install ไม่ทำงานเช่นกัน การทำ apt-get - ติดตั้งซ้ำไม่ทำงาน

คุณอาจลองรวบรวมใหม่:

sudo python

>>>import compileall

>>>compileall.compile_dir('/usr/lib/python2.7', force=True)

ตอนนี้ "รายการ pip" ใช้งานได้ (ก่อนหน้านี้ฉันได้ลบไฟล์ pyc ทั้งหมด แต่ฉันไม่คิดว่ามันจำเป็นหรือปลอดภัย)



0

การติดตั้ง python-pip ใหม่จากเว็บไซต์นี้ใช้งานได้สำหรับฉัน:

sudo apt-get purge python-pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py --user
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.