pip3
Sistem site paketlerine bir şeyler yüklemekten kaçınılmasını şiddetle tavsiye ederim . Bu tartışmaları daha önce yaptım ama size notları vereceğim:
- Sistem güncellemeleri her şeyi bozuyor
- Apt paketlerini kurmak pip yüklü şeylerin üzerine yazabilir
- Sürüm çakışmaları
- Dağıtım yükseltmeleri öngörülemeyen kaostur . Ciddi anlamda. Bunlara saç döktüm.
Kullanmayı şiddetle savunurdum virtualenv
. Nereye gidecekseniz büyük bir acıdır, ancak bir kez ayarladıktan sonra tüm kontrolünüz altında tam bir Python ortamı vardır. Bu, daha fazla iş anlamına gelir (güncellemeleri kontrol etmek zorundasınız ve pip
henüz orada gerçekten yardımcı olmuyor) ancak Ubuntu'nun ne yaptığı konusunda endişelenmenize gerek yok.
Her site için bir ortamım var (adı verilen alt dizinde oturuyorum venv
). Bazı insanlar - ben de dahil olmak üzere - bir zamanlar - çevrelerini birden fazla site arasında paylaşmayı tercih ediyorlar. Güncelleme yayınlama açısından bakımı daha kolay buldum, ancak bazı siteler kırılgan olabilir veya eski sürümleri gerektirebilir ve tüm ortamı geri tutar. YMMV.
Bu yükleme açısından, sadece yüzüme tokat, virtualenv
biz kullanıma zorunda henüz Python 3 için paketlenmiş değildir pip3
:
$ sudo pip3 install virtualenv
...
$ virtualenv-3.3 myenv
Using base prefix '/usr'
New python executable in myenv/bin/python3
Also creating executable in myenv/bin/python
Installing setuptools, pip...done.
$ source myenv/bin/activate # This is important!
Bash PS1'iniz, (myenv)
farklı bir ortamda bulunduğunuzu bildirmek için şimdi sıkılmalı . İşlerin doğru sürümlerinde olduğumuzu kontrol etmek için ortamı test edebiliriz (yeni başlayanlar için sistem sürümlerini kullanmıyorsunuz):
$ python --version
Python 3.3.2+
$ which python pip
/home/oli/Desktop/myenv/bin/python
/home/oli/Desktop/myenv/bin/pip
Ve sonra sanki evrenin ustası gibisin. Artık kullanmak için kök pip
gerekmez ve belirtmeniz gerekmez pip3
. Sadece çok daha kolay.
$ pip install django umemcache
...
Bunu uwsgi
barındırmak gibi bir şey kullanıyorsanız (gerekir), Python ortamının nerede yaşadığını söylemek için -H bayrağını (veya home config bağımsız değişkenini) kullanın.
Geliştirmeyi kolaylaştırmak için, virtualenv
ortamınızı otomatik olarak "bağlayabilirsiniz" . Orada birçok senaryo var ama bu benim. (Bu benim hayatımın dibinde yaşıyor ~/.bashrc
:
export VENVDIR="/web"
export VENVDIR_VENV="$VENVDIR/venv"
venvcd() {
wd=$(pwd)
[[ $wd == $VENVDIR/* || $wd == $VENVDIR ]] && wasin=true || unset wasin
builtin cd "$@"
wd=$(pwd)
if [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]]; then
source $VENVDIR_VENV/bin/activate
else
[ $wasin ] && deactivate
fi
}
alias cd="venvcd"
cd .
Ben ne zaman cd
içine /web
(bütün gelişim siteleri depolandığı yer), bu benim için VIRTUALENV takar. Tüm sitelerim için yalnızca bir ortama sahip olduğumu ve bu nedenle benzer bir şey yaparsanız bunun size uygun olacağını unutmayın. Orada benzer şeyler yapmanın birçok yolu .