Bagaimana cara meningkatkan pip ke yang terbaru?

51

Saya menginstal pip menggunakan get-pip.pysetelah itu pip freezemelempar kesalahan di bawah ini

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
    req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 299, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

Storing debug log for failure in /home/simon/.pip/pip.log

Jadi saya memeriksa 1.7 adalah yang terbaru. Jika saya mengikuti langkah-langkah di bawah ini dan itu tidak memperbarui ... Bantu saya di sini ...

simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip install -U pip
Downloading/unpacking pip
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
Successfully installed pip
Cleaning up...
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
Raja Simon
sumber
1
sudo -H pip3 instal --upgrade pip
moldovean

Jawaban:

54

Saya biasanya hanya menjalankan perintah berikut untuk meningkatkan keduanya pip2(= pipsecara default) dan pip3:

sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pip

Anda harus memastikan bahwa Anda meningkatkan versi (untuk Python 2 atau 3), yang Anda ingin bereaksi pada perintah piptanpa nomor, terakhir.

Juga harap dicatat bahwa ini membuat versi paket lama tetap diinstal apt-getatau manajer paket lainnya, tetapi menambahkan versi baru yang tidak ada hubungannya dengan paket sistem. Paket pip-paket yang diinstal akan lebih disukai, tetapi Anda tidak boleh menghapus paket apt-get-instal juga, karena manajer paket tidak dapat mengetahui bahwa pipversi apa pun diinstal sebaliknya.

Komandan Byte
sumber
3
Mengapa penting untuk tinggal di rumah sudo -H?
Léo Léopold Hertz 준영
11
@Masi Karena pipingin menulis file yang diunduh ke suatu tempat untuk menyimpannya. Itu diterapkan untuk menempatkan mereka dalam subfolder dari direktori home pengguna saat ini. Jika Anda menjalankannya tanpa -Hitu akan mengeluh, karena mendeteksi bahwa direktori home yang saat ini ditetapkan (pengguna normal) tidak cocok dengan pengguna yang dijalankan sebagai (root). Jika ia menulis file-nya di direktori home Anda, mereka akan dimiliki oleh root dan tidak dapat diakses oleh Anda sebagai pengguna biasa lagi. Oleh karena itu tidak menyimpan file dalam kasus ini. Tidaklah buruk untuk menghilangkan -Hsaat pipmendeteksi dan memperingatkan Anda.
Byte Commander
1
Mengapa kedua perintah hanya menimpa pipperintah? Ketika saya memutakhirkannya , perintah pip2itu tidak diperbarui . pip2pip
Yep_It's_Me
@ Yep_It's_Me ini karena piprelatif terhadap versi python yang Anda panggil. dan itulah sebabnya perintahnya adalah pip2& pip3masing-masing memanggil versi python yang sesuai untuk memperbarui pip. Apakah itu masuk akal?
JayRizzo
27

saya pikir

pip install --upgrade pip

perintah tidak berfungsi dengan baik lagi. Perintah yang benar adalah:

  • untuk Python 3:

    python3 -m pip install --upgrade pip
  • untuk Python 2:

    python2 -m pip install --upgrade pip
Isi
sumber
Gg @ david-foerster
JayRizzo
Di Linux, cukup gunakan pip install -U pip(lihat
Memutakhirkan
1
Saya punya masalah ketika memperbarui pip dari root (dalam gambar Docker) dan ini bekerja seperti pesona.
Cristian Ramon-Cortes
Bekerja seperti pesona di Linux mint
HelloWorld
5

Kunjungi situs web ini https://pypi.python.org/pypi/pip

salin (atau) unduh tautan sumber (berakhir di .tar.gz)

untuk 9.0.1 tautannya adalah https://pypi.python.org/pypi?:action=show_md5&digest=35f01da33009719497f01a4ba69d63c9

prosedur instalasi

wget //link goes here
tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python3 setup.py install

versi harus diubah ke versi terbaru dan tautannya dapat diperbarui dengan tautan versi terbaru

ini seharusnya bekerja

an0nym0use
sumber
ini adalah satu-satunya hal yang bekerja untuk saya karena yang lainnya memerlukan koneksi ke server dari shell, yang lagi-lagi gagal dengan kesalahan yang sama.
Alok Rajasukumaran
1

pip install -U pip

Yang terpendek yang saya tahu.

prosti
sumber
1

Saya pikir itu layak disebutkan bahwa apa yang saya jelaskan di bawah ini adalah jika Anda mengharapkan pip untuk menunjuk ke Python 2 dan pip3 untuk menunjuk ke Python 3. Alasan saya menyebutkan ini adalah karena ketika Anda memutakhirkan pip3, itu juga mengambil alih perintah pip sebagai baik. Ini adalah konvensi yang agak aneh karena secara default python menunjuk ke 2.x dan python3 menunjuk ke 3.x. Yang telah dibilang...

Jika Anda ingin memiliki versi terbaru dari python 2.x pip dan python 3.x pip3 hidup berdampingan pada mesin yang sama (menggunakan pip untuk 2.x dan pip3 untuk 3.x), Anda perlu melakukan hal berikut:

sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force
sudo python -m pip install pip --upgrade --force # this line associates pip with Python 2

Jawaban lain yang diberikan oleh orang lain gagal menyebutkan bahwa setelah menjalankan sudo pip3 install pip --upgrade Anda akan berakhir dengan perintah pip menginstal paket dalam direktori python 3.x alih-alih direktori python 2.x.

Sebagian dari saya berpikir bahwa kita harus meninggalkan pip setelah memutakhirkan pip3 (bahkan jika pip -> pip3), tetapi ada bahaya di sana bahwa orang sudah memiliki harapan bahwa fungsi pip seperti python - keduanya menunjuk ke python 2.x. Dengan kata lain, orang mungkin dilatih untuk menggunakan pip / python untuk python 2.x sama seperti mereka dilatih untuk menggunakan pip3 / python3 untuk python 3.x.

Mike
sumber
-1

Saya menghadapi kesalahan yang sama dan menyelesaikannya dengan perintah berikut.

sudo su root
apt-get purge -y python-pip
wget https://bootstrap.pypa.io/get-pip.py
python ./get-pip.py
apt-get install python-pip

ImportError: Tidak ada modul bernama packaging.version

Bhavesh Odedra
sumber
apt-get purge -y python-pipbekerja untuk saya
Akira Yamamoto