Como posso instalar o Django for Python 3.x?

29

Eu instalei o Django com este comando:

sudo apt-get install python-django

E ele 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 do python 3 e tento importar o Django, ele diz que não existe tal módulo. Eu tentei procurar por uma versão python3 do Django, mas esse pacote não existe. Como posso obter o django trabalhando em python3? Eu preferiria usar os pacotes do Ubuntu, em vez de instalar as coisas manualmente.

    
por Jon 06.01.2014 / 19:59

4 respostas

17

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

sudo pip3 install Django

fez o truque.

Você pode precisar obter o pip3 por:

sudo apt-get install python3-pip
    
por Jon 16.01.2014 / 20:44
31

Eu sugiro strongmente evitar que pip3 instale coisas nos pacotes de site do sistema. Eu fiz estes argumentos antes , mas vou dar-lhe as notas:

  • Atualizações do sistema quebram tudo
  • A instalação de pacotes apt pode sobrescrever coisas instaladas por pip
  • Conflitos de versão
  • Os upgrades de distribuição são imprevisíveis caos . A sério. Eu perdi cabelo para estes.

Eu defendo strongmente o uso de virtualenv . É uma dor enorme em onde quer que vá, mas depois de configurá-lo, você tem um ambiente Python completo sob seu controle total. Isso significa mais trabalho (você terá que verificar as coisas para atualizações e pip não ajuda muito ainda), mas você 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, virtualenv não é empacotado para o Python 3, então 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!

Seu bash PS1 agora deve ser carregado com (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 (não usando 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 de root para usar pip e não precisa especificar pip3 . É muito mais amigável.

$ pip install django umemcache
...

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

Para facilitar o desenvolvimento, você pode "montar" automaticamente o ambiente virtualenv . Existem muitos scripts por aí, mas este é meu (isso fica no final 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 eu cd em /web (onde todos os meus sites de desenvolvimento estão armazenados), ele monta o virtualenv para mim. Note que eu só tenho um ambiente para todos os meus sites, então isso só irá combiná-lo se você fizer algo similar. Existem muitas outras maneiras de fazer coisas semelhantes .

    
por Oli 23.01.2014 / 11:58
3

Pessoal, há uma maneira fácil de usar o virtualenvwrapper , de longe o mais fácil de gerenciar o Python 2.7 / 3.x ambientes virtuais 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-packages para reutilizar pacotes de site globais.
virtualenv instala o pip e outras ferramentas de configuração do python para nos ajude a começar rapidamente.

$ pip install Django
$ pip install -r requirements.txt
    
por Sandeep 18.06.2016 / 14:07
2

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

apt-get install python3-django

    
por Thomas Goirand 12.08.2014 / 09:37