Apa cara resmi yang “disukai” untuk menginstal pip dan virtualenv di seluruh sistem?

86

Apakah ini, yang tampaknya paling sering direkomendasikan orang:

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv

Atau ini, yang saya dapatkan dari http://www.pip-installer.org/en/latest/installing.html :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

Atau sesuatu yang sama sekali berbeda?

penggiling kopi
sumber

Jawaban:

93

Jika Anda dapat menginstal Python terbaru (2.7.9 dan yang lebih baru), Pip sekarang disertakan dengannya. Lihat: https://docs.python.org/2.7//installing/index.html
Jika tidak:
Perbarui (dari catatan rilis):

Dimulai dengan v1.5.1, pip tidak memerlukan alat penyiapan sebelum menjalankan get-pip.py. Selain itu, jika setuptools (atau distribusikan) belum diinstal, get-pip.py akan menginstal setuptools untuk Anda.

Saya sekarang menjalankan reguler:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

Berikut adalah petunjuk pemasangan resmi: http://pip.readthedocs.org/en/latest/installing.html#install-pip

EDIT 25-Jul-2013:
URL yang diubah untuk pemasangan alat setup.

EDIT 10-Feb-2014:
Pemasangan alat penyetelan yang dihapus (terima kasih)

EDIT 26-Jun-2014:
Pembaruan URL lagi (terima kasih)

EDIT 1-Mar-2015:
Pip sekarang dibundel dengan Python

Tal Weiss
sumber
1
Di mana / bagaimana Anda menginstal setuptools-0.8? Sepertinya Anda baru saja ez_setup.pymencari "versi ringan" untuk mendapatkan pip. Saya akan melakukan hal yang sama tetapi takut itu akan rusak dalam waktu dekat dan saya akan terjebak di sini lagi (seperti yang selalu saya lakukan)
Steven Lu
3
Ah, sepertinya instruksinya mengatakan untuk melakukan apa yang Anda katakan di sini, itu dikenai sanksi. Lupakan saja.
Steven Lu
4
Ada cara baru (?) Untuk melakukan ini, ini menginstal pip dan setuptools secara otomatis: wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py dan kemudian python get-pip.py(mungkin memerlukan sudo)
Ciantic
3
Sekarang URL untuk get-pip.py tampaknya telah berubah menjadi https://bootstrap.pypa.io/get-pip.py. Mungkin lebih baik hanya menautkan ke instruksi resmi.
LarsH
2
PS Terima kasih atas jawaban ini - ini membantu saya memasang pip.
LarsH
21

http://www.pip-installer.org/en/latest/installing.html sebenarnya adalah jawaban kanonik untuk pertanyaan ini.

Secara khusus, instruksi di seluruh sistem adalah:

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

Bagian yang dikutip dalam pertanyaan adalah virtualenvinstruksi daripada bagian yang mencakup seluruh sistem. The easy_installpetunjuk telah sekitar untuk lebih lama, tetapi tidak perlu melakukannya dengan cara itu lagi.

Richard Jones
sumber
Diedit untuk memperjelas perbedaan antara petunjuk di seluruh sistem pada halaman itu dan virtualenvpetunjuk yang dikutip dalam pertanyaan.
ncoghlan
1
Pembaruan: mendistribusikan tidak berfungsi lagi untuk pip! Lihat stackoverflow.com/a/17601159/78234
Tal Weiss
1
Harap perhatikan bahwa petunjuk di halaman tertaut tidak lagi sesuai dengan petunjuk di sini. Yang terbaik adalah mengunjungi halaman resmi dan melakukan apa yang mereka katakan (dan mengapa ada orang yang meragukan mereka sejak awal ?!)
Neil Traft
Pendekatan yang dijelaskan dalam jawaban ini sudah usang dan sepertinya tidak berfungsi lagi.
cel
16

Jawaban ini berasal dari @webology di Twitter:

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install --upgrade pip virtualenv virtualenvwrapper

Catatan saya yang ditambahkan:

  • Di Mac / Windows (dan Linux jika apt repo sudah ketinggalan zaman) Anda akan mengganti langkah pertama dengan mengunduh setuptools dari http://pypi.python.org/pypi/setuptools
  • Di Windows, Anda harus menghilangkan virtualenvwrapper dari langkah terakhir dan menginstalnya secara manual. Saya tidak tahu apakah ada cara untuk melakukan ini tanpa Cygwin, tapi saya harap begitu.
penggiling kopi
sumber
1
Jika kondisinya adalah Anda menginginkan instalasi pip dan virtualenv di seluruh sistem, inilah yang biasanya saya lakukan. Instruksi dari dokumen pip yang diberikan sebagai alternatif kedua dalam pertanyaan didasarkan pada premis bahwa kami menghindari menginstal apa pun di seluruh sistem.
Carl Meyer
3
Anda dapat mengganti dua perintah pertama dengan $ sudo apt-get install python-pip. Menginstal python-pip juga akan menginstal python-setuptools.
Dennis
4

Di Ubuntu 12.04 saya beruntung hanya menggunakan manajer paket:

sudo apt-get install python-pip virtualenvwrapper
Jason McVetta
sumber
1
Versi yang dikemas sudah jauh dari tanggal. 12.04 menyediakan python-pip 1.0-1build1yang dirilis pada awal 2011 dan virtualenvwrapper 2.11.1-21dirilis Januari 2012. Jawaban @Richard Jones akan memberi Anda kabar terbaru.
JCotton
3

Tidak ada metode yang disukai - semuanya tergantung pada kebutuhan Anda. Seringkali Anda perlu memiliki interpreter Python yang berbeda pada sistem untuk alasan apa pun. Dalam hal ini Anda perlu menginstal barang satu per satu untuk setiap juru bahasa. Selain itu: Saya lebih suka menginstal barang sendiri daripada bergantung pada barang yang dikemas sebelumnya yang terkadang menyebabkan masalah - tetapi itu hanya satu kemungkinan pilihan.

Andreas Jung
sumber
Saya bertanya tentang metode yang disukai secara khusus karena saya akan memberikan instruksi ini kepada kelas yang terdiri dari 20 orang dan tidak ingin menyesatkan mereka.
penggiling kopi
3

Sebenarnya tidak ada satu "jawaban" untuk pertanyaan ini, tetapi pasti ada beberapa konsep bermanfaat yang dapat membantu Anda mengambil keputusan.

Pertanyaan pertama yang perlu dijawab dalam kasus penggunaan Anda adalah "Apakah saya ingin menggunakan sistem Python?" Jika Anda ingin menggunakan Python yang didistribusikan dengan sistem operasi Anda, maka menggunakan metode instal apt-get mungkin baik-baik saja. Bergantung pada metode distribusi sistem operasi, Anda masih harus mengajukan beberapa pertanyaan lagi, seperti "Apakah saya ingin menginstal beberapa versi paket ini?" Jika jawabannya ya, mungkin bukan ide yang baik untuk menggunakan sesuatu seperti apt. Dpkg cukup banyak hanya akan mengurai arsip di root sistem file, jadi terserah pengelola paket untuk memastikan paket terinstal dengan aman dengan asumsi yang sangat sedikit. Dalam kasus sebagian besar paket debian, saya akan berasumsi (seseorang dapat dengan bebas mengoreksi saya di sini) bahwa mereka hanya untar dan menyediakan paket tingkat atas.

Misalnya, paketnya adalah "virtualenv", Anda akan mendapatkan /usr/lib/python2.x/site-packages/virtualenv. Jika Anda menginstalnya dengan easy_installAnda akan mendapatkan sesuatu seperti /usr/lib/python2.x/site-packages/virtualenv.egg-linkitu yang mungkin mengarah ke /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.eggdirektori atau telur zip. Pip melakukan hal serupa meskipun tidak menggunakan telur dan sebagai gantinya akan menempatkan paket tingkat atas langsung di libdirektori.

Saya mungkin salah jalan, tetapi intinya adalah bahwa setiap metode memperhitungkan kebutuhan yang berbeda. Inilah sebabnya mengapa alat seperti virtualenv sangat membantu karena memungkinkan Anda untuk membuat kotak pasir pustaka Python Anda sedemikian rupa sehingga Anda dapat memiliki kombinasi apa pun yang Anda butuhkan dari pustaka dan versi.

Setuptools juga memungkinkan menginstal paket sebagai multiversi yang berarti tidak ada satu pun bulan yang dule_name.egg-linkdibuat. Untuk mengimpor paket tersebut, Anda perlu menggunakan pkg_resources dan __import__fungsinya.

Kembali ke pertanyaan awal Anda, jika Anda puas dengan python sistem dan berencana menggunakan virtualenv dan pip untuk membangun lingkungan untuk aplikasi yang berbeda, maka menginstal virtualenv dan / atau pip pada tingkat sistem menggunakan apt-get tampaknya sangat tepat. Satu kata yang perlu diperhatikan adalah jika Anda berencana untuk meningkatkan distribusi Python Anda, itu mungkin memiliki efek riak melalui virtualenv Anda jika Anda menautkan kembali ke paket situs sistem Anda.

Saya juga harus menyebutkan bahwa tidak ada dari opsi ini yang secara inheren lebih baik daripada yang lain. Mereka hanya mengambil pendekatan yang berbeda. Menggunakan versi sistem adalah cara terbaik untuk menginstal aplikasi Python, namun ini bisa menjadi cara yang sangat sulit untuk mengembangkan dengan Python. Mudah menginstal dan setuptools sangat nyaman di dunia tanpa virtualenv, tetapi jika Anda perlu menggunakan versi berbeda dari pustaka yang sama, maka itu juga menjadi agak sulit. Pip dan virtualenv benar-benar bertindak lebih seperti mesin virtual. Alih-alih berhati-hati untuk menginstal sesuatu secara berdampingan, Anda hanya membuat lingkungan yang sama sekali baru. Kelemahannya di sini adalah bahwa 30+ virtualenv nanti Anda mungkin telah menggunakan cukup banyak ruang disk dan mengacaukan sistem file Anda.

Seperti yang Anda lihat, dengan banyaknya opsi, sulit untuk menentukan metode mana yang akan digunakan, tetapi dengan sedikit penyelidikan ke dalam kasus penggunaan Anda, Anda seharusnya dapat menemukan metode yang berfungsi.

elarson
sumber
2

Karena virtualenvs berisi pip secara default, saya hampir tidak pernah menginstal pip secara global. Apa yang saya lakukan akhirnya terlihat lebih seperti:

$ sudo apt-get install python-setuptools
$ curl -O http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py
$ sudo easy_install virtualenv

Saya kemudian melanjutkan untuk menginstal dan mengatur virtualenvwrapper sesuai dengan keinginan saya dan saya berangkat. Mungkin ada baiknya juga untuk melihat virtualenv-burrito Jeremy Avnet:

https://github.com/brainsik/virtualenv-burrito

David Gouldin
sumber
3
Mengapa Anda repot-repot menggunakan python-setuptools dan kemudian mendistribusikan ketika Anda dapat langsung mendistribusikannya?
lambacck
@lambacck Bisakah Anda memposting apa yang Anda gambarkan dalam jawaban terpisah (meskipun tampaknya berulang)?
penggiling kopi
2
Belum lagi bahwa pada Ubuntu baru-baru ini (dan Debian juga? Tidak yakin) paket "python-setuptools" sebenarnya didistribusikan oleh IS, jadi Anda sebaiknya melewati langkah distribusi tertentu.
Carl Meyer
@ coffee-grinder distribut adalah cabang dari setuptools dan karenanya menyediakan fungsionalitas yang sama (dan lebih banyak lagi). Jangan repot-repot melakukan "apt-get install python-setuptools" kecuali python-setuptools IS mendistribusikan (seperti yang ditunjukkan Carl) dalam hal ini lewati langkah 2 & 3.
lambacck
2

@ericholscher berkata di Twitter, "Yang ada di dokumen resmi .."

Ini poin yang bagus, Anda harus melakukan apa yang dikatakan oleh dokumen.

Dikutip dari petunjuk instalasi pip resmi di http://www.pip-installer.org/en/latest/installing.html :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...
penggiling kopi
sumber
✓ Ini adalah pilihan terbaik jika Anda tidak ingin bergantung pada paket distribusi.
Tobu
2

Mulai dari paket distro, Anda dapat menggunakan:

sudo apt-get install python-virtualenv

yang memungkinkan Anda membuat virtualenvs, atau

sudo apt-get install python{,3}-pip

yang memungkinkan Anda menginstal paket arbitrer ke direktori home Anda.

Jika Anda terbiasa dengan virtualenv, perintah pertama memberi Anda semua yang Anda butuhkan (ingat, pip dibundel dan akan diinstal di virtualenv apa pun yang Anda buat).

Jika Anda hanya ingin menginstal paket, perintah kedua memberikan apa yang Anda butuhkan. Gunakan pip seperti ini:

pip install --user something

dan meletakkan sesuatu seperti

PATH=~/.local/bin:$PATH

di Anda ~/.bashrc.


Jika distro Anda kuno dan Anda tidak ingin menggunakan paketnya sama sekali (kecuali untuk Python itu sendiri, mungkin), Anda dapat mengunduh virtualenv, baik sebagai tarball atau sebagai skrip mandiri:

wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py
chmod +x ~/bin/virtualenv

Jika distro Anda lebih dari jenis yang paling baru, Python3.3 memiliki kemampuan seperti virtualenv bawaan:

python3 -m venv ./venv

Ini bekerja lebih cepat, tetapi setuptools dan pip tidak disertakan.

Tobu
sumber
2

Untuk menginstal pip di mac (osx), satu liner berikut berfungsi dengan baik untuk saya:

sudo easy_install pip
Brad Parks
sumber
2

Di Raspbian, bahkan tidak perlu disebutkan python2.7. Memang ini adalah cara terbaik untuk menginstal pip jika versi python kurang dari 2.7.9.

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

Terima kasih kepada @ tal-weiss

Hemant Kumar
sumber
1

Saya menggunakan get-pip dan virtualenv-burrito untuk menginstal semua ini. Tidak yakin apakah python-setuptools diperlukan.

# might be optional. I install as part of my standard ubuntu setup script
sudo apt-get -y install python-setuptools

# install pip (using get-pip.py from pip contrib)
curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && sudo python get-pip.py

# one-line virtualenv and virtualenvwrapper using virtualenv-burrito
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash
carl_kibler
sumber
1

Di Debian, cara terbaik untuk melakukannya adalah

sudo apt-get install python-pip

Yehonatan
sumber
1
versi debian bisa sangat tua. periksa jawaban ini untuk info lebih lanjut: unix.stackexchange.com/a/182467/17425
georgiecasey
0

Metode yang pertama baik-baik saja. Satu-satunya masalah yang dapat saya lihat adalah bahwa Anda mungkin berakhir dengan versi lama dari setuptools (jika repositori apt belum diperbarui ..

bradley.ayers
sumber