Jak mogę zainstalować Django dla Python 3.x?


32

Zainstalowałem Django za pomocą tego polecenia:

sudo apt-get install python-django

I zainstalował wersję 1.5.4-1ubuntu1. Dokumenty Django mówią, że od wersji 1.5 Django obsługuje Python 3. Jednak kiedy uruchamiam interpreter Pythona 3 i próbuję importować Django, to mówi, że nie ma takiego modułu. Próbowałem szukać wersji Django dla python3, ale taki pakiet nie istnieje. Jak mogę uzyskać django działające na Python3? Wolę używać pakietów ubuntu zamiast instalować rzeczy ręcznie.


1
Sprawdź askubuntu.com/questions/666933/... Pracował dla mnie ... :)

Odpowiedzi:


38

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 .


18

Wymyśliłem, jak to zrobić pip. Okazuje się, że potrzebowałem pip3:

sudo pip3 install Django

wykonał lewę.

Może być konieczne uzyskanie pip3 przez:

sudo apt-get install python3-pip

3

Django dla Python3 zostało niedawno dodane. Więc po prostu wpisz terminal:

apt-get install python3-django


1
E: Unable to locate package python3-django
Jonathan

1
Nie jest dostępny dla Ubuntu 14.04 Trusty Tahr.
Anwar

1
Nie sugeruję używania django systemu-repos. Jeśli nastąpi aktualizacja, niektóre funkcje, których używasz, mogą nie działać po aktualizacji. Lepiej użyj metody wirtualnej env, jak pokazano powyżej.
0xAffe

Mam najnowszą wersję Debiana (8, aktualną), a Django 1.7.11 (która jest EOL!) To najnowsza wersja dostępna w repozytoriach. Wygląda na to, że Ubuntu ma obsługiwaną wersję (1.8.7.) Zastanawiam się, dlaczego Debian jest tak daleko w tyle?
Hydraxan14,

3

Faceci, istnieje prosty sposób przy użyciu virtualenvwrapper , zdecydowanie najłatwiejszego do zarządzania środowiskami wirtualnymi Python 2.7 / 3.x w Ubuntu / Debian.

$ sudo apt-get install python3 virtualenvwrapper
$ mkvirtualenv <venv> -p python3
$ workon <venv> # sets into the virtualenv from any terminal.

Opcjonalnie włącz --system-site-packagesponowne użycie globalnych pakietów witryn.
virtualenv instaluje pip i inne narzędzia do konfiguracji Pythona, aby pomóc nam szybko zacząć.

$ pip install Django
$ pip install -r requirements.txt
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.