Gunakan python -m pip install
sebagai gantipip install
Contoh:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
Saya mulai mendapatkan masalah ini setelah pip
peningkatan:
pip install --upgrade --user pip
The pip
(resp. pip3
) Executable disediakan oleh distro Anda ( python-pip
paket pada Ubuntu 16.04).
Oleh karena itu, ini tidak selalu diperbarui dengan pip
paket itu sendiri saat Anda meningkatkan pip, dan mungkin rusak.
Jika Anda hanya menggunakan python -m pip
secara 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/pip3
tidak:
from pip import main
dan mungkin main
telah dihapus dari pip
beberapa 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 pip3
9.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?