ใช้python -m pip install
แทนpip install
ตัวอย่าง:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
ฉันเริ่มได้รับปัญหานี้หลังจากการpip
อัพเกรด:
pip install --upgrade --user pip
ปฏิบัติการpip
(resp. pip3
) จัดทำโดย distro ของคุณ ( python-pip
แพ็คเกจบน Ubuntu 16.04)
ดังนั้นจึงไม่ได้รับการอัปเดตpip
แพ็กเกจปัจจุบันในขณะที่คุณอัพเกรด pip และอาจแตก
หากคุณใช้python -m pip
โดยตรงเช่นใน:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
มันจะผ่านเส้นทาง Python ของคุณและค้นหา pip เวอร์ชันล่าสุดและเรียกใช้ไฟล์นั้น
มันขึ้นอยู่กับความจริงที่ว่าไฟล์นั้นสามารถเรียกใช้งานได้ แต่เป็นอินเตอร์เฟซมาตรฐานที่มีมาตรฐานมากดังนั้นจึงมีโอกาสน้อยที่จะทำลายได้มากกว่าสคริปต์ Debian ของแฮกเกอร์
จากนั้นฉันแนะนำให้เพิ่มชื่อแทนต่อไปนี้ใน.bashrc
:
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
/usr/bin/pip3
ไฟล์Ubuntu 18.04 ทำ:
from pip import main
และน่าจะmain
ถูกลบออกจากpip
บางจุดซึ่งเป็นสิ่งที่แตก
การแบ่งจุดแบ่งที่ดูเหมือนจะเป็น: 95bcf8c5f6394298035a7332c441868f3b0169f4 "ย้าย API ภายในทั้งหมดไปยัง pip._internal"ซึ่งเข้าไปใน pip 18.0
ทดสอบใน Ubuntu 16.04 หลังจากอัพเดตจากpip3
9.0.1 เป็น 18.0
pyenv
อย่างไรก็ตามในที่สุดสำหรับการพัฒนา Python อย่างจริงจังฉันขอแนะนำให้คุณติดตั้ง Python ในพื้นที่ของคุณเองด้วย pyenv + virtualenv ซึ่งจะแก้ไขข้อผิดพลาดของ Ubuntu นี้: ฉันจะติดตั้ง Python เวอร์ชั่นอื่นโดยใช้ apt-get ได้อย่างไร?