Bagaimana cara menginstal versi pip terbaru ketika saya sudah menginstal yang disediakan oleh Ubuntu?

18

Di Ubuntu 16.04 saat Anda melakukannya:

pip install --upgrade pip

Anda mendapatkan:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Cukup adil. Sekarang coba

pip install --upgrade pip

dan Anda mendapatkan:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Jadi, bagaimana cara mendapatkan pip 8.1.2?

pengguna2413
sumber
Apakah sudo -H pip install --upgrade pipbekerja?
edwinksl
@edwinksl: ini memberikan hasil yang sama dengan perintah lainnya.
user2413
Rasanya aneh karena itu bekerja untuk saya. Mungkin perlu mengajukan laporan bug.
edwinksl
@edwinksl: terima kasih. Saya akan menunggu beberapa hari lagi dan melakukannya>
user2413
1
@edwinksl Baru saja membuka masalah jika ada yang ingin melacaknya.
sethmlarson

Jawaban:

13

Ini bukan ide yang baik untuk memperbarui sistem python kecuali Anda benar-benar bekerja pada kode ubuntu dan punya alasan khusus untuk itu. Ada banyak dependensi sistem yang dapat Anda hancurkan dengan memperbarui dengan pip alih-alih menggunakan python libs dalam repositori APT.

Jika Anda mengembangkan aplikasi python dan perlu mengubah versi pustaka maka Anda harus menggunakan opsi --user untuk memip atau membuat virtualenv untuk menyimpan versi lib pengguna.

Kedua metode ini dengan anggun akan kembali menggunakan sistem libs jika mereka tidak memiliki salinan sendiri, virtualenv memiliki lebih banyak pilihan tentang cara mengontrol umpan balik itu.

pip dengan --user

Ini semudah hanya menambahkan --user ke akhir semua perintah pip Anda, ini akan menempatkan python libs Anda di ~ / .local / lib / pythonX.X (di mana XX adalah nomor versi python Anda), mereka akan terlihat untuk di sini pertama-tama hanya berhati-hati tentang melakukan ini untuk root jika Anda harus menjalankan melalui sudo karena dapat mempengaruhi sistem python.

virtualenv

Ini bekerja dengan cara yang mirip dengan yang di atas tetapi kurang terikat pada pengguna tertentu sehingga tidak memiliki batasan sudo, Anda juga dapat mengkloning virtualenv dan memutakhirkannya untuk menguji perubahan sehingga memungkinkan Anda untuk mengembalikan jika itu menyebalkan. http://docs.python-guide.org/en/latest/dev/virtualenvs/

Amias
sumber
1
Anda benar-benar ingin melakukan alt instal python jika Anda ingin 2.7, sehingga Anda tidak akan mengganggu OS python. Dari sana, Anda perlu memperbarui pip di alt instal sebelum venv. Anda juga ingin --no-cache-dir untuk mencegah instalasi versi cache.
Wyrmwood
Memperbarui pip tidak berdampak negatif (tetap saja) python 2.7 yang secara default dikirimkan.
Dipengaruhi
10

Sepertinya ini mungkin menjadi masalah dengan menginstal file .whl untuk pip8.1.2. Cara untuk menginstal pip8.1.2 adalah mengunduh sumber langsung dari PyPi dan menginstalnya via setup.py.

Berikut ini bekerja untuk saya:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

Ini tentu saja bukan solusi untuk menginstal pip 8.1.2 via pip install --upgrade, tetapi harus memadamkan peringatan sampai masalah ini teratasi .

sethmlarson
sumber
Ada komentar di utas itu yang menunjukkan bahwa ini sebagian terkait dengan ubuntu menambal versi paket pip mereka untuk menghentikannya memutakhirkan paket yang diinstal.
Amias
5

sudo -H python -m pip install --upgrade pipakan menyelesaikan masalah Anda. Sebagai seseorang yang disebutkan di atas meskipun sistem khusus memerlukan python 2.7 untuk hal-hal tertentu ... Yang mengatakan Anda dapat memutakhirkan pip tanpa berdampak negatif itu tetapi Anda juga dapat menginstal 3,5 bersama jika Anda mau.

yang -Hmerupakan bendera untuk sudoyang permintaan bahwa kebijakan keamanan mengatur variabel lingkungan HOME untuk direktori home yang ditentukan oleh entri database password target pengguna. Tergantung pada kebijakannya, ini mungkin merupakan perilaku default.

Menderita
sumber
Jika seseorang ingin meng-downvote postingan pemikiran seperti ini, Anda harus benar - benar mengatakan mengapa ini bentuk yang buruk.
javadba
Karena mereka marah dan perlu melampiaskan kemarahan kepada seseorang. Marah pada apa yang Anda minta, kehidupan secara umum. stack overflow telah berubah menjadi tempat untuk datang dan dilecehkan.
Dipengaruhi
2

Copot pemasangan pip menggunakan apt-get dan instal menggunakan easy_install. Itu berhasil untuk saya.

sudo apt-get remove python-pip
sudo easy_install pip
Toliveira
sumber
easy_install gagal. Saya mengerti bash: /usr/bin/pip: No such file or directory. Dan saya tidak bisa membersihkan pip sekarang juga. Saya harap pip ini belum sepenuhnya rusak pada mesin saya.
Dean Schulze