2011-08-22 3 views
271

Mümkün mü? pip'u yüklerken, $HOME klasörümdeki python paketlerini yükleyin. (Örneğin, ben pip kullanarak, mercurial yüklemek istiyorum ama $HOME yerine /usr/local iç) yerine "kirletici" nin, bir mac makinesi ile olduğumu ve sadece bu olasılığı hakkında düşünce

benim /usr/local kızkardeşimi kullanırsınız Bunun yerine $HOME.

PEP370 tam olarak bununla ilgilidir. Sadece ˜/.local yaratıyor ve bu paketlerin sadece $ HOME klasörümde yüklenmesini sağlayacak kadar pip install package yapıyor musunuz?

+0

virtualenv'i kontrol ettiniz mi? Yalıtılmış bir ortamda pip içeren paketleri kurabilirsiniz. – joet3ch

+2

Bunu düşündüm, ancak mevcut python'u (2.6.1) kullanarak bazı python uygulamalarını yüklemek istiyorum, ancak/usr/local/dizinine kurmak yerine $ HOME klasörüme kurun ve $ PATH'a ekleyin. Mümkün olup olmadığını ve bu yaklaşımın herhangi bir uyarısını bilmek istiyorum. PEP370'i tanıtmak için –

+10

+1. Bu, daha fazla kişinin bilmesi gereken basit ama kullanışlı bir seçenektir. –

cevap

380

virtualenv'u kullanırken, yapmanız gerekmez. Hile, PEP370 --user argümanını setup.py betiğine geçiriyor. pip en son sürümü ile, bunu yapmak için tek yoldur:

pip install --user mercurial 

Bu $HOME/.local/bin/hg yüklü olma hg yazısı ve $HOME/.local/lib/pythonx.y/site-packages/ yılında hg paketin geri kalanı ile sonuçlanacaktır.

Not: Yukarıdaki, Python 2.6 için geçerlidir. PEPhon çekirdek geliştiricileri arasında PEP370 tarzı user yüklemeleri için Mac OS X'te uygun dizin konumu hakkında bir bit of controversy olmuştur. Python 2.7 ve 3.2'de Mac OS X'teki konum $HOME/.local'dan $HOME/Library/Python'a değiştirilmiştir. Bu, gelecekteki bir sürümde değişebilir. Ancak, şimdilik, 2.7 (ve 3.2, hg Python 3'te destekleniyorsa), yukarıdaki konumlar $HOME/Library/Python/x.y/bin/hg ve $HOME/Library/Python/x.y/lib/python/site-packages olacaktır.

+0

İyi nokta. Ne yazık ki, Python 2.7'de OS X çerçevesi için PYTHONUSERBASE'in göz ardı edilmesine neden olan bir hata var. Python 2.7.3 için düzeltilecek. –

+1

Bu çok gizemli görünüyor. 'easy_install', varsayılan olarak Mac OS X'te yüklü olarak gelir, bu yüzden sadece $ $ $' '$ HOME' klasörünün dışına kurulur. –

+0

Snow Leopard'ımla birlikte gelen 'easy_install''/Library/Python/2.6/site-packages/pip-1.0.2-py2.6.egg''de 'pip'' yüklüyor. '' Pip ''/usr/local/bin/pip' gösterir. '--user' argümanı ve pip' ile civcivin yüklenmesi, 'hg' şimdi $ HOME/.local/bin/hg' gösterir !. ($ HOME/.local/bin 'i çalıştırmam için $ PATH' ye eklemem gerekiyordu.) –

18

Sanal dizini HOME dizininizde kullanırdım. Kabuk pip|python|easy_install varsayılan olarak kullanılan biri olacağını sonra PATH ~/bin ekleyin ve için

$ sudo easy_install -U virtualenv 
$ cd ~ 
$ virtualenv . 
$ bin/pip ... 

Ardından da doğru hangisi ~/.(login|profile|bash_profile), değiştirebilir.

+6

* "de facto" * bunu yapmanın yolu "virtualenv venv", "source venv/bin/activate". Her zaman ** sanalenvinizi kullanmak istemeyebilirsiniz ve bu yöntemi kullanarak, istendiğinde isteğiniz '(venv) ile öneklenir. – nyuszika7h

+2

@ nyuszika7h Virtualenv'i nasıl kullanacağımızı biliyoruz. Ama bu soruya gerçekten cevap veriyor ve çok temiz bir çözüm. – itsafire

+5

@itsafire Kim "biz"? Https://en.wikipedia.org/wiki/Weasel_word – nyuszika7h