Sistem genelinde pip ve virtualenv kurmanın resmi "tercih edilen" yolu nedir?


87

İnsanların en çok tavsiye ettiği şey bu mu:

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

Veya http://www.pip-installer.org/en/latest/installing.html adresinden aldığım bu :

$ 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 ...

Veya tamamen farklı bir şey?

Yanıtlar:


93

En son Python'u (2.7.9 ve üstü) yükleyebiliyorsanız, Pip şimdi onunla birlikte paketlenmiştir. Bakınız: https://docs.python.org/2.7//installing/index.html
Değilse:
Güncelle (sürüm notlarından):

V1.5.1 ile başlayarak pip, get-pip.py'yi çalıştırmadan önce kurulum araçlarına ihtiyaç duymaz. Ek olarak, eğer setuptools (veya dağıtım) kurulu değilse, get-pip.py sizin için kurulum araçlarını kuracaktır.

Şimdi normal çalıştırıyorum:

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

Resmi kurulum talimatları şunlardır: http://pip.readthedocs.org/en/latest/installing.html#install-pip

25 Temmuz 2013'ü DÜZENLE:
Kurulum araçları yüklemesinin URL'si değiştirildi.

DÜZENLE 10 Şubat 2014:
Kurulum araçları kaldırıldı (teşekkürler @Ciantic)

DÜZENLEME 26 Haziran 2014:
URL tekrar güncellendi (teşekkürler @LarsH)

DÜZENLEME 1-Mart-2015:
Pip artık Python ile birlikte geliyor


1
Setuptools-0.8'i nereye / nasıl kurarsınız? Görünüşe göre ez_setup.pypip almanın "hafif bir versiyonunu" seçiyorsunuz. Ben de aynısını yapardım ama yakın gelecekte kırılacağından korkarım ve yine burada sıkışıp kalacağım (her zaman yaptığım gibi)
Steven Lu

3
Ah, görünen o ki, talimatlar sadece burada söylediğin gibi yap, yaptırıma tabi. Boşver o zaman.
Steven Lu

4
Bunu yapmanın yeni (?) Bir yolu var, bu pip ve setuptools'u otomatik olarak yükler: wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py ve sonra python get-pip.py(sudo gerektirebilir)
Ciantic

3
Şimdi get-pip.py URL'si olarak değişmiş görünüyor https://bootstrap.pypa.io/get-pip.py. Muhtemelen sadece resmi talimatlara bağlanmak daha iyidir.
LarsH

2
Not: Bu cevap için teşekkürler - pip'i kurmama yardımcı oldu.
LarsH

21

http://www.pip-installer.org/en/latest/installing.html gerçekten bu sorunun kanonik cevabıdır.

Özellikle, sistem genelindeki talimatlar şunlardır:

$ 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

Soruda alıntılanan bölüm virtualenv, sistem genelindeki talimatlardan çok talimatlardır. easy_installTalimatlar uzun süre uygulama olmuştur ama artık bu şekilde yapmak için gerekli değildir.


Bu sayfadaki sistem genelindeki talimatlar ile virtualenvsoruda alıntılanan talimatlar arasındaki farkı açıklığa kavuşturmak için düzenlendi .
ncoghlan

1
Güncelleme: dağıtmak artık pip için çalışmıyor! Bkz stackoverflow.com/a/17601159/78234
Tal Weiss

1
Lütfen bağlantılı sayfadaki talimatların artık buradaki talimatlarla eşleşmediğini unutmayın. Sadece resmi sayfayı ziyaret etmek ve söylediklerini yapmak en iyisidir (ve neden birisi onlardan ilk etapta şüphe
duydu

Bu cevapta açıklanan yaklaşım modası geçmiş ve artık işe yaramıyor gibi görünüyor.
cel

16

Bu cevap Twitter'daki @webology'den geliyor:

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

Eklediğim notlar:

  • Mac / Windows'da (ve apt deposu güncel değilse Linux'ta) ilk adımı http://pypi.python.org/pypi/setuptools adresinden kurulum araçlarını indirerek değiştirirsiniz.
  • Windows'ta son adımdan virtualenvwrapper'ı atlamanız ve bir şekilde manuel olarak yüklemeniz gerekir. Bunu Cygwin olmadan yapmanın bir yolu var mı bilmiyorum ama umarım öyledir.

1
Koşul, sistem genelinde pip ve virtualenv kurulumlarını istemenizse, genellikle yaptığım şey budur. Sorudaki ikinci alternatif olarak verilen pip belgelerinden gelen talimatlar, sistem genelinde herhangi bir şey yüklemekten kaçındığımız öncülüne dayanmaktadır.
Carl Meyer

3
İlk iki komutu ile değiştirebilirsiniz $ sudo apt-get install python-pip. Python-pip kurulumu, python-setup araçlarını da kuracaktır.
Dennis

4

Ubuntu 12.04'te sadece paket yöneticisini kullanırken iyi şanslar yaşadım:

sudo apt-get install python-pip virtualenvwrapper

1
Paketlenmiş sürümler çok eski. 12.04, python-pip 1.0-1build12011'in başlarında ve virtualenvwrapper 2.11.1-21Ocak 2012'de piyasaya sürülen sağlar. @Richard Jones'un cevabı size en son bilgileri verecektir.
JCotton

3

Tercih edilen bir yöntem yoktur - her şey ihtiyaçlarınıza bağlıdır. Genellikle, herhangi bir nedenle sistemde farklı Python yorumlayıcılarına ihtiyacınız vardır. Bu durumda, her tercüman için malzemeleri ayrı ayrı yüklemeniz gerekir. Bunun dışında: Bazen sorunlara neden olan önceden paketlenmiş şeyler yerine kendim yüklemeyi tercih ederim - ama bu yalnızca bir olası seçenek.


Özellikle tercih edilen yöntemi soruyorum çünkü bu talimatları 20 kişilik bir sınıfa vereceğim ve onları yanıltmak istemiyorum.
kahve değirmeni

3

Bu sorunun gerçekten tek bir "cevabı" yok, ancak bir karara varmanıza yardımcı olabilecek kesinlikle bazı yararlı kavramlar var.

Kullanım durumunuzda yanıtlanması gereken ilk soru "Python sistemini kullanmak istiyor muyum?" İşletim sisteminizle birlikte dağıtılan Python'u kullanmak istiyorsanız, apt-get install yöntemini kullanmak yeterli olabilir. Yine de işletim sistemi dağıtım yöntemine bağlı olarak, "Bu paketin birden çok sürümünü yüklemek istiyor muyum?" Gibi bazı sorular sormanız gerekir. Cevap evet ise, apt gibi bir şey kullanmak muhtemelen iyi bir fikir değildir. Dpkg hemen hemen dosya sisteminin kökündeki bir arşivi kaldıracaktır, bu nedenle paketin çok küçük varsayımlar altında güvenli bir şekilde kurulduğundan emin olmak paket bakımcısına kalmıştır. Debian paketlerinin çoğu söz konusu olduğunda, (birisi beni burada düzeltmekte özgür olabilir) basitçe taramayı kaldırıp üst düzey bir paket sağladıklarını varsayarım.

Örneğin, paketin "virtualenv" olduğunu varsayalım, sonuçta olursunuz /usr/lib/python2.x/site-packages/virtualenv. İle bunu yüklerseniz easy_installgibi bir şey almak istiyorum /usr/lib/python2.x/site-packages/virtualenv.egg-linko kudreti noktaya /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.eggbir dizin veya sıkıştırılmış yumurta olabilen. Pip, yumurta kullanmasa da benzer bir şey yapar ve bunun yerine üst düzey paketi doğrudan libdizine yerleştirir.

Yolda olmayabilirim, ancak önemli olan her yöntemin farklı ihtiyaçları hesaba katmasıdır. Bu nedenle virtualenv gibi araçlar, ihtiyacınız olan herhangi bir kitaplık ve sürüm kombinasyonuna sahip olabilmeniz için Python kitaplıklarınızı korumalı alana almanıza olanak sağladıkları için yararlıdır.

Setuptools ayrıca paketlerin çoklu dağıtım olarak kurulmasına izin verir, bu da tek bir mo dule_name.egg-linkoluşturulmadığı anlamına gelir . Bu paketleri içe aktarmak için pkg_resources ve __import__işlevi kullanmanız gerekir .

Orijinal sorunuza geri dönersek, sistem python'undan memnunsanız ve farklı uygulamalar için ortamlar oluşturmak için virtualenv ve pip kullanmayı planlıyorsanız, apt-get kullanarak sistem düzeyinde virtualenv ve / veya pip yüklemek tamamen uygun görünüyor. Yine de dikkat edilmesi gereken bir nokta, Python dağıtımlarınızı yükseltmeyi planlıyorsanız, sistem sitesi paketlerinize geri bağlanırsanız, sanal ortamlarınızda bir dalgalanma etkisi yaratabilir.

Ayrıca, bu seçeneklerden hiçbirinin doğası gereği diğerlerinden daha iyi olmadığını da belirtmeliyim. Sadece farklı yaklaşımlar benimsiyorlar. Sistem sürümünü kullanmak, Python uygulamalarını kurmanın mükemmel bir yoludur, ancak Python ile geliştirmenin çok zor bir yolu olabilir. Kolay kurulum ve kurulum araçları, virtualenv olmayan bir dünyada çok kullanışlıdır, ancak aynı kitaplığın farklı sürümlerini kullanmanız gerekirse, o zaman oldukça kullanışsız hale gelir. Pip ve virtualenv daha çok sanal bir makine gibi davranır. Her şeyi yan yana kurmaya özen göstermek yerine, yepyeni bir ortam yaratırsınız. Buradaki dezavantaj, 30'dan fazla sanal ortamın daha sonra oldukça fazla disk alanı kullanmış ve dosya sisteminizi dağınık olmasıdır.

Gördüğünüz gibi, birçok seçenek varken hangi yöntemi kullanacağınızı söylemek zor, ancak kullanım durumlarınız üzerinde biraz araştırma yaparak işe yarayan bir yöntem bulabilmelisiniz.



2

Virtualenv'ler varsayılan olarak pip içerdiğinden, neredeyse hiçbir zaman genel olarak pip yüklemem. Yaptığım şey daha çok şuna benziyor:

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

Daha sonra beğenilerime göre virtualenvwrapper kurmaya ve kurmaya devam ediyorum ve gidiyorum. Jeremy Avnet'in virtualenv-burritosuna bir göz atmak da faydalı olabilir:

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


3
Neden python kurulum araçlarıyla uğraşıyorsunuz ve sonra doğrudan dağıtıma gidebildiğinizde dağıtıyorsunuz?
lambacck

@lambacck Açıkladığınız şeyi ayrı bir cevapta (tekrar ediyor gibi görünse bile) gönderebilir misiniz?
kahve değirmeni

2
Son zamanlarda herhangi bir Ubuntu'da (ve Debian da mı? Emin değilim) "python-setuptools" paketinin gerçekte dağıtıldığından bahsetmeye gerek yok, bu yüzden sadece belirli dağıtım adımını atlayabilirsiniz.
Carl Meyer

@ coffee-grinder distribute, kurulum araçlarından oluşan bir çataldır ve bu nedenle aynı işlevselliği (ve daha fazlasını) sağlar. Python-setuptools dağıtmadığı sürece (Carl'ın belirttiği gibi) "apt-get install python-setuptools" yapmaya zahmet etmeyin, bu durumda 2. ve 3. adımları atlayın.
lambacck

2

@ericholscher, Twitter'da "Resmi belgelerdeki .." diyor.

Bu harika bir nokta, doktorların söylediklerini yapmalısın.

Http://www.pip-installer.org/en/latest/installing.html adresindeki resmi pip kurulum talimatlarından alıntılanmıştır :

$ 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 ...

✓ Dağıtım paketlerine güvenmek istemiyorsanız bu en iyi seçenektir.
Tobu

2

Dağıtım paketlerinden başlayarak, aşağıdakilerden birini kullanabilirsiniz:

sudo apt-get install python-virtualenv

bu, sanal ortamlar oluşturmanıza izin verir veya

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

bu, gelişigüzel paketleri ana dizininize yüklemenizi sağlar.

Virtualenv'e alışkınsanız, ilk komut size ihtiyacınız olan her şeyi verir (unutmayın, pip paketlenmiştir ve oluşturduğunuz herhangi bir virtualenv'e kurulacaktır).

Yalnızca paketleri kurmak istiyorsanız, ikinci komut size ihtiyacınız olanı verir. Pip'i şu şekilde kullanın:

pip install --user something

ve şöyle bir şey koy

PATH=~/.local/bin:$PATH

senin içinde ~/.bashrc.


Dağıtımınız eskiyse ve paketlerini hiç kullanmak istemiyorsanız (muhtemelen Python dışında), virtualenv'i bir tarball veya bağımsız bir komut dosyası olarak indirebilirsiniz:

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

Dağıtımınız daha çok kanayan uç türdeyse, Python3.3 yerleşik sanal ortam benzeri yeteneklere sahiptir:

python3 -m venv ./venv

Bu çok daha hızlı çalışır, ancak kurulum araçları ve pip dahil değildir.


2

Mac'e (osx) pip yüklemek için aşağıdaki tek satır benim için harika çalıştı:

sudo easy_install pip

2

Raspbian'da bahsetmeye bile gerek yok python2.7. Aslında bu, python sürümü 2.7.9'dan daha azsa pip kurmanın en iyi yoludur.

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

@ Tal-weiss'e teşekkürler



1

Tüm bunları kurmak için get-pip ve virtualenv-burrito kullanıyorum. Python-setup araçlarının gerekli olup olmadığından emin değilim.

# 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


0

Eski yöntem iyidir. Görebildiğim tek sorun, kurulum araçlarının eski bir sürümüne sahip olabileceğinizdir (eğer apt deposu güncel tutulmadıysa ..

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.