Zdecydowanie sugeruję unikanie pip3instalowania rzeczy w pakietach witryn systemu. Przedstawiłem już te argumenty, ale dam wam notatki:
- Aktualizacje systemu psują wszystko
- Instalowanie pakietów apt może nadpisywać rzeczy instalowane przez pip
- Konflikty wersji
- Ulepszenia dystrybucji są nieprzewidywalnym chaosem . Poważnie. Straciłem do nich włosy.
Zdecydowanie zalecałbym używanie virtualenv. Gdziekolwiek się wybierasz, to ogromny ból, ale po skonfigurowaniu masz pełne środowisko Python pod pełną kontrolą. To oznacza więcej pracy (będziesz musiał sprawdzić rzeczy pod kątem aktualizacji ipip nie pomaga), ale nie musisz się martwić tym, co robi Ubuntu.
Mam środowisko dla każdej witryny (po prostu siedzi w podkatalogu o nazwie venv). Niektóre osoby - w tym ja, dawno temu - wolą udostępniać swoje środowiska między wieloma witrynami. Uznałem, że jest to łatwiejsze w utrzymaniu, jeśli chodzi o wydawanie aktualizacji, ale niektóre witryny mogą być niestabilne lub wymagać starych wersji, co powstrzymuje całe środowisko. YMMV.
Jeśli chodzi o instalację tego, i po prostu uderzenie mnie w twarz, virtualenvnie jest jeszcze zapakowany dla Python 3, więc musimy użyć 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!
Twój bash PS1 powinien być teraz zapełniony, (myenv)abyś wiedział, że jesteś w innym środowisku. Możemy przetestować środowisko, aby sprawdzić, czy korzystamy z odpowiednich wersji rzeczy (nie używamy wersji systemowych na początek):
$ python --version
Python 3.3.2+
$ which python pip
/home/oli/Desktop/myenv/bin/python
/home/oli/Desktop/myenv/bin/pip
A potem możesz kontynuować, jakbyś był panem wszechświata. Nie musisz pipjuż używać roota i nie musisz go określać pip3. Jest o wiele bardziej przyjazny.
$ pip install django umemcache
...
Jeśli używasz czegoś takiego uwsgido hostowania tego (powinieneś) użyj jego flagi -H (lub argumentu home config), aby powiedzieć mu, gdzie mieszka środowisko Python.
Jeśli chodzi o ułatwienie programowania, możesz automatycznie „zamontować” swoje virtualenvśrodowisko. Istnieje wiele skryptów, ale ten jest mój (ten mieszka na dole mojego ~/.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 .
Ilekroć wchodzę cddo /web(gdzie przechowywane są wszystkie moje witryny programistyczne), instaluje dla mnie virtualenv. Pamiętaj, że mam tylko jedno środowisko dla wszystkich moich witryn, więc będzie to pasowało tylko, jeśli zrobisz coś podobnego. Istnieje wiele innych sposobów robienia podobnych rzeczy .