Gunakan python -m pip installsebagai gantipip install
Contoh:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
Saya mulai mendapatkan masalah ini setelah pippeningkatan:
pip install --upgrade --user pip
The pip(resp. pip3) Executable disediakan oleh distro Anda ( python-pippaket pada Ubuntu 16.04).
Oleh karena itu, ini tidak selalu diperbarui dengan pippaket itu sendiri saat Anda meningkatkan pip, dan mungkin rusak.
Jika Anda hanya menggunakan python -m pipsecara langsung, misalnya dalam:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
ia melewati jalur Python Anda dan menemukan versi terbaru dari pip, dan mengeksekusi file itu.
Itu bergantung pada fakta bahwa file itu dapat dieksekusi, tetapi itu adalah tipe antarmuka yang sangat standar, dan karena itu lebih kecil kemungkinannya untuk rusak daripada skrip Debian yang lebih rumit.
Maka saya sarankan menambahkan alias berikut ke .bashrc:
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
File Ubuntu 18.04 /usr/bin/pip3tidak:
from pip import main
dan mungkin maintelah dihapus dari pipbeberapa titik yang merupakan hal yang merusak.
Commit pemecah pip tampaknya: 95bcf8c5f6394298035a7332c441868f3b0169f4 "Pindahkan semua API internal ke pip._internal" yang masuk ke pip 18.0.
Diuji di Ubuntu 16.04 setelah pembaruan dari pip39.0.1 ke 18.0.
Pyenv
Namun pada akhirnya, untuk pengembangan Python yang serius, saya hanya menyarankan Anda menginstal Python lokal Anda sendiri dengan pyenv + virtualenv, yang juga dapat mengatasi bug Ubuntu ini: Bagaimana cara menginstal versi Python yang berbeda menggunakan apt-get?