Untuk keluarga Ubuntu, pengguna Debian, Linux Mint
Berkat penjelasan Anthony di atas , Anda dapat mempertahankan pip sistem asli Anda (di / usr / bin / dan dist-paket /) dan menghapus pip yang diinstal secara manual (di ~ / .local /) untuk menyelesaikan konflik:
$ python3 -m pip uninstall pip
Ubuntu / Debian pip v8.1.1 (16.04) dari python3-pip
paket debian (lihat $ pip3 -V
) menunjukkan hasil pencarian yang sama dengan pip terbaru v10.0.1, dan menginstal modul-modul terbaru dari PyPI. Ini memiliki pip
perintah yang berfungsi (sudah dalam $ PATH), ditambah --user
opsi bagus ditambal secara default sejak 2016. Melihat catatan rilis pip , versi yang lebih baru kebanyakan tentang perbaikan bug khusus kasus penggunaan dan fitur baru tertentu, jadi tidak setiap orang harus buru-buru memperbarui pip dulu. Dan pip 10 yang baru dapat digunakan untuk virtualenvs Python.
Tetapi terlepas dari pips, OS Anda memungkinkan untuk menginstal modul Python umum dengan cepat (termasuk numpy) dengan APT, tanpa perlu pip, misalnya:
$ sudo apt install python3-numpy python3-scipy
(dengan dependensi sistem)
$ sudo apt install python3-pip
(pip yang ditambal Debian, sedikit lebih tua tetapi tidak masalah)
Pengingat sintaks yang tepat (lihat man apt
detailnya):
$ sudo apt update
(untuk menyelaraskan kembali file indeks paket Ubuntu dari sumber terbaru)
$ apt search <python-package-name>
(pencarian teks lengkap pada semua paket yang tersedia)
$ apt show <python-package-name>
(menampilkan deskripsi paket terperinci)
$ sudo apt install <python-package-name>
Nama paket yang diawali dengan python-
adalah untuk Python 2; dan diawali dengan python3-
adalah untuk Python 3 (misalnya python3-panda). Ada ribuan, dan mereka menjalani pengujian integrasi dalam Debian dan Ubuntu. Kecuali jika Anda ingin menginstal di tingkat per-pengguna ( pip install --user
opsi) atau dalam virtualenv / venv, apt bisa menjadi apa yang Anda butuhkan. Paket-paket sistem ini juga dapat diakses dari virtual envs, karena virtualenv dengan anggun akan kembali menggunakan lib sistem saat impor jika Anda tidak memberikan salinan modul. --user
Modul per pengguna yang diinstal khusus (dengan pip ) ~/.local/lib
akan menggantikannya juga.
Catatan, karena ini adalah pemasangan di seluruh sistem , Anda jarang perlu menghapusnya (harus memperhatikan dependensi OS). Ini cocok untuk paket dengan banyak ketergantungan sistem (seperti dengan scipy atau matplotlib), karena APT akan melacak dan menyediakan semua lib sistem dan ekstensi C yang diperlukan, sementara dengan pip Anda tidak memiliki jaminan seperti itu .
Bahkan, untuk paket Python seluruh sistem (berbeda dengan per-pengguna, tingkat dir rumah, atau lebih rendah), Ubuntu mengharapkan menggunakan manajer paket APT (daripada sudo pip
) untuk menghindari melanggar OS: sudo pip3
menargetkan /usr/lib/python3/dist-packages
direktori yang sama di mana APT menyimpan OS Modul-sensitif. Rilis terbaru Debian / Ubuntu sangat bergantung pada Python 3, sehingga modul pra-instalnya dikelola oleh apt
dan tidak boleh diubah.
Jadi jika Anda menggunakan pip3 install
perintah, pastikan ia berjalan di lingkungan dev virtual yang terisolasi, seperti dengan virtualenv ( sudo apt install python3-virtualenv
), atau dengan Python3 built-in ( -m venv
), atau pada tingkat per pengguna ( --user
opsi pip, default di Ubuntu yang disediakan pip sejak 2016), tetapi tidak untuk seluruh sistem (tidak pernah sudo pip3
!), karena pip mengganggu operasi manajer paket APT dan dapat memengaruhi komponen OS Ubuntu ketika modul python yang digunakan sistem secara tak terduga berubah. Semoga berhasil!
P. S. Semua di atas adalah untuk solusi 'ideal' (cara Debian / Ubuntu).
Jika kamu masih ingin menggunakan pip3 v10 baru secara eksklusif, ada 3 solusi cepat:
- cukup buka sesi bash baru (tab terminal baru, atau ketik
bash
) - dan pip3 v10 tersedia (lihat pip3 -V
). pip3 v8 debian tetap terpasang tetapi rusak; atau
- perintah
$ hash -d pip3 && pip3 -V
untuk me-refresh path3 pathname di $ PATH. pip3 v8 debian tetap terpasang tetapi rusak; atau
- perintah
$ sudo apt remove python3-pip && hash -d pip3
untuk menghapus sepenuhnya pipian v8 debian, mendukung pip3 v10 baru Anda.
Catatan: Anda akan selalu perlu menambahkan --user
flag ke pip yang disediakan non-debian, kecuali Anda berada di virtualenv! (Ini menyebarkan paket python ke ~/.local/
, default di debian / ubuntu-disediakan python3-pip dan python-pip sejak 2016). Penggunaan pip 10 di seluruh sistem, di luar virtualenv, tidak benar-benar didukung oleh Ubuntu / Debian. Tidak pernah sudo pip3
!
Rincian lebih lanjut:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100