¿Cómo puedo instalar Django para Python 3.x?

32

Instalé Django con este comando:

sudo apt-get install python-django

E instaló la versión 1.5.4-1ubuntu1. Los documentos de Django dicen que a partir de la versión 1.5, Django es compatible con Python 3. Sin embargo, cuando ejecuto el intérprete de python 3 e intento importar Django, dice que no existe dicho módulo. Intenté buscar una versión python3 de Django, pero no existe tal paquete. ¿Cómo puedo hacer que django funcione en python3? Prefiero usar paquetes de ubuntu en lugar de instalar cosas manualmente.

Jonathan
fuente
1
Echa un vistazo a askubuntu.com/questions/666933/… Trabajó para mí ... :)

Respuestas:

38

Sugeriría encarecidamente evitar pip3instalar cosas en los paquetes de sitio del sistema. He hecho estos argumentos antes pero te daré las notas:

  • Las actualizaciones del sistema rompen todo
  • Instalar paquetes apt puede sobrescribir cosas instaladas en pip
  • Conflictos de versión
  • Las actualizaciones de distribución son un caos impredecible . Seriamente. He perdido el pelo a estos.

Yo recomendaría firmemente el uso virtualenv. Es un dolor enorme en donde quiera que vaya, pero una vez que lo tiene configurado, tiene un entorno completo de Python bajo su control total. Esto significa más trabajo (tendrás que buscar cosas para ver si hay actualizaciones y piptodavía no ayuda allí), pero no tienes que preocuparte por lo que está haciendo Ubuntu.

Tengo un entorno para cada sitio (solo sentado en un subdirectorio llamado venv). Algunas personas, incluido yo, una vez, prefieren compartir sus entornos entre múltiples sitios. Encontré esto más fácil de mantener en términos de emisión de actualizaciones, pero algunos sitios pueden ser frágiles o requerir versiones antiguas y eso frena todo el entorno. YMMV.

En términos de instalación, y solo para abofetearme, virtualenvtodavía no está empaquetado para Python 3, así que tenemos 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!

Tu bash PS1 ahora debería estar preparada (myenv)para hacerte saber que estás en un entorno diferente. Podemos probar el entorno para verificar que estamos en las versiones correctas de las cosas (no estamos usando las versiones del sistema para empezar):

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

Y luego puedes continuar como si fueras el maestro del universo. Ya no necesita root para usar pipy no necesita especificar pip3. Es mucho más amigable.

$ pip install django umemcache
...

Si está utilizando algo como uwsgialojar esto (debería) usar su bandera -H (o argumento de configuración de inicio) para decirle dónde vive el entorno Python.

En cuanto a facilitar el desarrollo, puede "montar" automáticamente su virtualenventorno. Hay muchos guiones por ahí, pero este es mío (esto vive en la parte inferior de mi ~/.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 .

Cada vez que cdentro /web(donde se almacenan todos mis sitios web de desarrollo), me resulta virtualenv. Tenga en cuenta que solo tengo un entorno para todos mis sitios, por lo que esto solo le servirá si hace algo similar. Hay muchas otras formas de hacer cosas similares .

Oli
fuente
18

Descubrí cómo hacer esto pip. Resulta que necesitaba pip3:

sudo pip3 install Django

Hizo el truco.

Es posible que necesite obtener pip3 de la siguiente manera:

sudo apt-get install python3-pip
Jonathan
fuente
3

Django para Python3 ahora se ha agregado recientemente. Entonces simplemente escriba una terminal:

apt-get install python3-django

Thomas Goirand
fuente
1
E: Unable to locate package python3-django
Jonathan
1
No está disponible para Ubuntu 14.04 Trusty Tahr.
Anwar
1
No sugiero usar el sistema-repos django. Si habrá una actualización, algunas de las funciones que está utilizando podrían no funcionar después de la actualización. Utilice mejor el enfoque de virtual-env como se muestra arriba.
0xAffe
Estoy en la última versión de Debian (8, actualizada), y Django 1.7.11 (¡que es EOL!) Es la última versión disponible en los repositorios. Parece que Ubuntu tiene una versión compatible (1.8.7.) Me pregunto por qué Debian está tan atrasado.
Hydraxan14
3

Chicos, hay una manera fácil de usar virtualenvwrapper , con mucho, la más fácil de administrar entornos virtuales Python 2.7 / 3.x en Ubuntu / Debian.

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

Opcionalmente, habilite la --system-site-packagesreutilización de paquetes globales del sitio.
virtualenv instala pip y otras herramientas de configuración de python para ayudarnos a comenzar rápidamente.

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