Como posso instalar o Django para Python 3.x?

32

Eu instalei o Django com este comando:

sudo apt-get install python-django

E instalou a versão 1.5.4-1ubuntu1. Os documentos do Django dizem que, a partir da versão 1.5, o Django suporta o Python 3. No entanto, quando eu executo o interpretador python 3 e tento importar o Django, ele diz que não existe esse módulo. Tentei procurar por uma versão python3 do Django, mas esse pacote não existe. Como posso obter o django trabalhando no python3? Eu preferiria usar pacotes ubuntu em vez de instalar as coisas manualmente.

Jonathan
fonte
1
Confira askubuntu.com/questions/666933/… Trabalhou para mim ... :)

Respostas:

38

Eu sugeriria fortemente evitar pip3instalar coisas nos pacotes de sites do sistema. Eu já fiz esses argumentos, mas darei as notas a você:

  • As atualizações do sistema quebram tudo
  • A instalação de pacotes apt pode substituir coisas instaladas pelo pip
  • Conflitos de versão
  • As atualizações de distribuição são um caos imprevisível . A sério. Eu perdi cabelo para isso.

Eu defenderia fortemente o uso virtualenv. É uma dor enorme para onde ir, mas depois de configurá-lo, você terá um ambiente Python completo sob seu controle total. Isso significa mais trabalho (você terá que verificar se há atualizações e pipainda não ajuda muito lá), mas não precisa se preocupar com o que o Ubuntu está fazendo.

Eu tenho um ambiente para cada site (apenas sentado em um subdiretório chamado venv). Algumas pessoas - inclusive eu, uma vez - preferem compartilhar seus ambientes entre vários sites. Achei isso mais fácil de manter em termos de emissão de atualizações, mas alguns sites podem ser frágeis ou exigir versões antigas e que retém todo o ambiente. YMMV.

Em termos de instalação, e apenas para me dar um tapa na cara, virtualenvainda não está empacotado para o Python 3, portanto, temos que usar 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!

Agora, o seu PS1 do bash deve ser elogiado (myenv)para que você saiba que está em um ambiente diferente. Podemos testar o ambiente para verificar se estamos nas versões corretas das coisas (sem usar as versões do sistema para iniciantes):

$ python --version
Python 3.3.2+
$ which python pip 
/home/oli/Desktop/myenv/bin/python
/home/oli/Desktop/myenv/bin/pip

E então você pode continuar como se fosse o mestre do universo. Você não precisa pipmais usar o root e não precisa especificar pip3. É muito mais amigável.

$ pip install django umemcache
...

Se você estiver usando algo como uwsgipara hospedar isso (você deve) use seu sinalizador -H (ou argumento de configuração inicial) para informar onde fica o ambiente Python.

Quanto a facilitar o desenvolvimento, você pode "montar" automaticamente seu virtualenvambiente. Existem muitos scripts por aí, mas este é meu (isso fica na parte inferior do meu ~/.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 .

Sempre que cdem /web(onde todos os meus sites de desenvolvimento são armazenados), ele monta o virtualenv para mim. Observe que eu só tenho um ambiente para todos os meus sites; portanto, isso só será adequado se você fizer algo semelhante. Existem muitas outras maneiras de fazer coisas semelhantes .

Oli
fonte
18

Eu descobri como fazer isso pip. Acontece que eu precisava pip3:

sudo pip3 install Django

fez o truque.

Pode ser necessário obter o pip3:

sudo apt-get install python3-pip
Jonathan
fonte
3

O Django para Python3 foi adicionado recentemente. Então, basta digitar um terminal:

apt-get install python3-django

Thomas Goirand
fonte
1
E: Unable to locate package python3-django
Jonathan
1
Não está disponível para o Ubuntu 14.04 Trusty Tahr.
Anwar
1
Eu não sugiro usar o sistema-repos django. Se houver uma atualização, algumas das funcionalidades que você está usando podem não funcionar após a atualização. Melhor usar a abordagem de ambiente virtual, como mostrado acima.
0xAffe 27/10/2015
Estou no Debian mais recente (8, atualizado) e o Django 1.7.11 (que é o EOL!) É a versão mais recente disponível nos repositórios. Parece que o Ubuntu tem uma versão suportada (1.8.7.) Gostaria de saber por que o Debian está tão atrasado?
Hydraxan14
3

Pessoal, existe uma maneira fácil de usar o virtualenvwrapper , de longe o mais fácil de gerenciar ambientes virtuais Python 2.7 / 3.x no Ubuntu / Debian.

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

Opcionalmente, habilite --system-site-packagesa reutilização de pacotes globais de sites.
O virtualenv instala pip e outras ferramentas de configuração python para nos ajudar a começar rapidamente.

$ pip install Django
$ pip install -r requirements.txt
Sandeep
fonte