Bagaimana cara saya memperbarui pip sendiri dari dalam lingkungan virtual saya?

523

Saya dapat memperbarui paket yang dikelola dengan pip, tetapi bagaimana cara memperbarui pip itu sendiri? Menurut pip --version, saat ini saya memiliki pip 1.1 yang terinstal di virtualenv saya dan saya ingin memperbarui ke versi terbaru.

Apa perintah untuk itu? Apakah saya perlu menggunakan mendistribusikan atau apakah ada perintah asli pip atau virtualenv? Saya sudah mencoba pip updatedan pip update piptidak berhasil.

zakdance
sumber
40
pip install --upgrade pip? Ini hanyalah paket PyPI lainnya.
Cairnarvon
1
Perintah itu memberi saya "/ Users / zak / MyProject / venv / bin / pip install: error: tidak ada opsi seperti itu: --update"
zakdances
4
Ini --upgrade, tidak --update, maaf. Saya segera mengedit posting saya, tetapi Anda pasti melihatnya tepat pada waktu yang salah.
Cairnarvon
2
@Cairnarvon adalah perintah yang berbeda untuk pip3? Saya mencoba pip3 tetapi hanya memberitahu saya tidak dapat menemukannya dan kemudian mengeluh lagi LAGI bahwa ini tidak terkini ... ketika itu bahkan tidak membiarkan saya memperbarui / meningkatkannya!
Charlie Parker

Jawaban:

929

piphanyalah paket PyPI seperti yang lainnya; Anda dapat menggunakannya untuk meningkatkan sendiri dengan cara yang sama seperti Anda akan meningkatkan paket apa pun:

pip install --upgrade pip

Pada Windows, perintah yang disarankan adalah:

python -m pip install --upgrade pip
Cairnarvon
sumber
53
Di bawah Windows saya memiliki masalah izin yang mencoba memutakhirkan pip menggunakan pip. Alih-alih, saya menggunakan easy_install untuk memutakhirkan:easy_install pip
bsa
8
Ketika saya melakukannya, pip ini sepertinya akan ditingkatkan (1.1 -> 1.4), tetapi ketika saya melakukan "pip --version" masih menunjukkan versi lama 1.1. Mencoba untuk menonaktifkan dan mengaktifkan virtualenv lagi tetapi masih menunjukkan versi lama.
Zitrax
40
Pada Windows mungkin lebih baik menggunakan perintah seperti itu: python -m pip install --upgrade pipuntuk menghindari menjalankan pip.exe dari direktori skrip.
bialix
@Zitrax apakah Anda memecahkan masalah ini? Saya dihadapkan dengan masalah yang sama.
Mohammad ali baghershemirani
@Mohammadalibaghershemirani maaf ini beberapa waktu yang lalu - tidak dapat mengingat.
Zitrax
58

Metode yang lebih aman adalah dengan menjalankan pip melalui modul python :

python -m pip install -U pip

Pada windows tampaknya ada masalah dengan binari yang mencoba untuk mengganti sendiri, metode ini mengatasi keterbatasan itu.

Janusz Skonieczny
sumber
9
Inilah yang disarankan oleh pip sendiri, jika mendeteksi versi dirinya yang lebih baru.
tephyr
1
Saya percaya alasan ini lebih aman adalah karena pada beberapa OS (Windows), hanya menjalankan pip secara langsung dapat membuat kunci file pada executable, yang akan mencegah pembaruan itu. Dengan memanggil Python dan mengatakannya untuk memuat modul secara langsung, Anda menghindari mengakses file executable.
jpmc26
Anda harus menjalankan prompt perintah dalam mode administrator agar ini berfungsi. Saya mencoba beberapa saran lain dan tidak ada yang berhasil sampai saya me-restart jendela command prompt dalam mode admin, lalu perintah ini bekerja dengan sempurna.
DaveN59
42

Dalam kasus saya, versi pip saya rusak sehingga pembaruan itu sendiri tidak akan berfungsi.

Memperbaiki:

(inside virtualenv):easy_install -U pip
jmoz
sumber
1
Itu juga kasus saya. Saya mencoba semua metode lain tetapi hanya yang ini yang membantu saya. Terima kasih!
levif
Sama di sini, itulah satu-satunya cara yang bekerja untuk saya di Debian. Menggunakan python atau pip untuk memutakhirkan pip dari dalam virtualenv akan gagal karena menolak untuk menghapus instalasi pip yang ada di luar venv.
user3748764
Menjalankan ini menunjukkan banyak hal kepada saya termasuk Download error on https://pypi.python.org/simple/pip/: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) -- Some packages may not be found!yang tidak ditampilkan saat menjalankan --upgrade. Dan kemungkinan alasan mengapa menginstal paket pip gagal dan mengapa memutakhirkan pip melalui pip juga gagal, SSL tampaknya rusak.
Vadorequest
9

Saya mencoba semua solusi yang disebutkan di atas di bawah Debian Jessie. Mereka tidak berfungsi, karena hanya membutuhkan kompilasi versi terbaru oleh manajer paket debian yang 1.5.6 yang setara dengan versi 6.0.x. Beberapa paket yang menggunakan pip sebagai prasyarat tidak akan berfungsi sebagai hasilnya, seperti spaCy (yang membutuhkan opsi --no-cache-dir agar berfungsi dengan benar).

Jadi cara terbaik sebenarnya untuk memecahkan masalah ini adalah dengan menjalankan get-pip.py yang diunduh menggunakan wget, dari situs web atau menggunakan curl sebagai berikut:

 wget https://bootstrap.pypa.io/get-pip.py -O ./get-pip.py
 python ./get-pip.py
 python3 ./get-pip.py

Ini akan menginstal versi saat ini yang pada saat penulisan solusi ini adalah 9.0.1 yang jauh melampaui apa yang disediakan Debian.

 $ pip --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python2.7/dist-packages (python 2.7)
 $ pip3 --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python3.4/site-packages (python 3.4)
Eamonn Kenny
sumber
2
membantu ketika pip install --upgrade pipgagal
Aneuway
Jika saya dapat memperbaiki jawaban ini beberapa kali, saya akan melakukannya. Ini baru saja memecahkan masalah ketika pip 9.x gagal dengan kesalahan SSL dengan memperbarui ke pip 10.x. Lihat stackoverflow.com/questions/25981703/…
Keith John Hutchison
Nah, jika Anda telah memutarnya bahkan sekali saya akan senang. Jawaban saya biasanya ditemukan dari satu atau dua jam berburu dan pengalaman bertahun-tahun. Tidak bisa mengatakan hal yang sama untuk pertanyaan saya? Orang bisa sangat jahat! :)
Eamonn Kenny
4

Memutakhirkan pip menggunakan ' pip install --upgrade pip ' tidak selalu berfungsi karena masalah sertifikat yang ditakuti: Ada masalah mengonfirmasi sertifikat ssl: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 versi protokol peringatan

Saya suka menggunakan perintah satu baris untuk virtual envs:

curl https://bootstrap.pypa.io/get-pip.py | python -

Atau jika Anda ingin menginstalnya lebar-lebar, Anda perlu

curl https://bootstrap.pypa.io/get-pip.py | sudo python -

Anda dapat memberikan tanda curl a -s jika Anda ingin membungkam output saat menjalankan skrip otomatisasi.

rubel
sumber
1

Dalam kasus saya ini bekerja dari baris perintah terminal di Debian Stable

python3 -m pip install --upgrade pip
Prabhakaran KC
sumber
1

Agar ini berfungsi bagi saya, saya harus menelusuri direktori Python menggunakan command prompt Python (pada WIN10 dari VS CODE). Dalam kasus saya itu ada di direktori "AppData \ Local \ Programs \ Python \ python35-32" saya. Dari sana sekarang saya menjalankan perintah ...

python -m pip install --upgrade pip

Ini berhasil dan saya baik untuk pergi.

Sean
sumber
1

Buka Command Prompt dengan Izin Administrator, dan ulangi perintah:

python -m pip install --upgrade pip
MRamzan
sumber
4
Bukankah ini sama dengan beberapa jawaban yang ada?
hkchengrex
Tapi, saya mengalami masalah dan diselesaikan ketika saya menjalankan CMD dengan Admin Privileges.
MRamzan
1

pip versi 10 memiliki masalah. Itu akan bermanifestasi sebagai kesalahan:

ubuntu@mymachine-:~/mydir$ sudo pip install --upgrade pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

Solusinya adalah berada di venv yang ingin Anda tingkatkan dan kemudian jalankan:

sudo myvenv/bin/pip install --upgrade pip

bukan hanya

sudo pip install --upgrade pip
Calaf
sumber
1

Jika Anda menggunakan venv, pembaruan apa pun untuk pemasangan pip akan menghasilkan peningkatan sistem pip daripada venv pip. Anda perlu memperbarui paket-paket bootstrap pip juga.

  python3 -m pip install --upgrade pip setuptools wheel
dre-hh
sumber
ada beberapa masalah pada python mailist atau pepa. Sayangnya semua pihak menyingkirkan tanggung jawab sebagai not my motorollermasalah
dre-hh
0

Saya telah menginstal Python di C: \ Python \ Python36 jadi saya pergi ke command prompt Windows dan mengetik "cd C: \ Python \ Python36 untuk sampai ke direktori yang benar. Kemudian masukkan" python -m install --upgrade pip "all baik!

Walt
sumber
0

Di lap-top saya dengan Windows 7 cara yang tepat untuk menginstal versi terbaru dari pip adalah:

python.exe -m pip install --upgrade pip
MiloshB
sumber
0

Program Single Line Python
Cara terbaik yang saya temukan adalah menulis program baris tunggal yang mengunduh dan menjalankan skrip get-pip resmi. Lihat di bawah untuk kodenya.

Dokumen resmi merekomendasikan menggunakan curl untuk mengunduh skrip get-pip, tetapi karena saya bekerja di windows dan tidak memiliki curl diinstal saya lebih suka menggunakan python sendiri untuk mengunduh dan menjalankan skrip.

Berikut adalah program baris tunggal yang dapat dijalankan melalui baris perintah menggunakan Python 3:

python -c "import urllib.request; exec(urllib.request.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

Baris ini mendapatkan skrip resmi "get-pip.py" sesuai catatan instalasi dan menjalankan skrip dengan perintah "exec".

Untuk Python2 Anda akan mengganti "urllib.request" dengan "urllib2":

python -c "import urllib2; exec(urllib2.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

Tindakan pencegahan
Perlu dicatat bahwa menjalankan skrip python secara membabi buta secara inheren berbahaya. Untuk alasan ini, instruksi resmi merekomendasikan mengunduh skrip dan memeriksanya sebelum dijalankan.

Yang mengatakan, banyak orang tidak benar-benar memeriksa kode dan menjalankannya. Program satu garis ini membuatnya lebih mudah.

Tinjuan kemarahan
sumber
0

Saya memiliki masalah serupa pada pi raspberry.

Masalahnya adalah bahwa http memerlukan SSL dan jadi saya harus memaksanya untuk menggunakan https untuk mengatasi persyaratan ini.

sudo pip install --upgrade pip --index-url=https://pypi.python.org/simple

atau

sudo pip-3.2 --upgrade pip --index-url=https://pypi.python.org/simple/
pengguna391339
sumber
0

Saya berada dalam situasi yang sama dan ingin memperbarui paket urllib3. Apa yang berhasil untuk saya adalah:

pip3 install --upgrade --force-reinstall --ignore-installed urllib3==1.25.3
Avik Aggarwal
sumber
-2

Sangat sederhana. Cukup unduh pip dari https://bootstrap.pypa.io/get-pip.py . Simpan file dalam beberapa forlder atau dekstop. Saya menyimpan file di drive D saya. Kemudian dari command prompt Anda navigasikan ke folder tempat Anda mengunduh pip. Kemudian ketik di sana

python -get-pip.py

Tangkapan layar pemasangan pip

Prasad K
sumber