Comment installer Django pour Python 3.x?

29

J'ai installé Django avec cette commande:

sudo apt-get install python-django

Et il a installé la version 1.5.4-1ubuntu1. Les documents de Django disent qu'à partir de la version 1.5, Django prend en charge Python 3. Pourtant, lorsque je lance l'interpréteur python 3 et que j'essaie d'importer Django, il est impossible de trouver un tel module. J'ai essayé de chercher une version python3 de Django, mais ce paquet n'existe pas. Comment puis-je utiliser django sur python3? Je préférerais utiliser des paquets ubuntu au lieu d'installer les choses manuellement.

    
posée Jon 06.01.2014 - 19:59
la source

4 réponses

17

J'ai trouvé comment faire cela avec pip . Il s'avère que j'avais besoin de pip3 :

sudo pip3 install Django

a fait le tour.

Vous devrez peut-être récupérer pip3 par:

sudo apt-get install python3-pip
    
réponse donnée Jon 16.01.2014 - 20:44
la source
32

Je suggère fortement d’éviter pip3 d’installer des éléments dans les packages de site du système. J'ai déjà fait ces arguments , mais je vous donnerai les notes:

  • Les mises à jour du système cassent tout
  • L'installation de paquets apt peut remplacer les éléments installés par pip
  • Conflits de version
  • Les mises à niveau de la distribution sont imprévisibles chaos . Sérieusement. J'ai perdu les cheveux à cause de ça.

Je préconise fortement d’utiliser virtualenv . C'est un problème énorme dans la vie, mais une fois que vous l'avez configuré, vous disposez d'un environnement Python complet sous votre contrôle complet. Cela signifie plus de travail (vous devrez vérifier les mises à jour et pip n'y aidera pas vraiment) mais vous n'avez pas à vous soucier de ce que fait Ubuntu.

J'ai un environnement pour chaque site (assis dans un sous-répertoire appelé venv ). Certaines personnes, y compris moi, préféraient partager leur environnement entre plusieurs sites. J'ai trouvé cela plus facile à gérer en termes d'émission de mises à jour, mais certains sites peuvent être fragiles ou nécessiter d'anciennes versions et cela retient l'ensemble de l'environnement. YMMV.

En ce qui concerne l’installation, et juste pour me casser la gueule, virtualenv n’est pas encore packagé pour Python 3, nous devons donc utiliser 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!

Votre psi PS1 devrait maintenant être préprogrammée avec (myenv) pour vous faire savoir que vous êtes dans un environnement différent. Nous pouvons tester l'environnement pour vérifier que nous sommes sur la bonne version des choses (sans utiliser les versions du système pour les débutants):

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

Et puis vous pouvez continuer comme si vous étiez maître de l'univers. Vous n'avez plus besoin de root pour utiliser pip et vous n'avez pas besoin de spécifier pip3 . C'est beaucoup plus convivial.

$ pip install django umemcache
...

Si vous utilisez quelque chose comme uwsgi pour héberger ceci (vous devriez) utiliser son indicateur -H (ou argument de configuration de la maison) pour lui indiquer où vit l'environnement Python.

Pour faciliter le développement, vous pouvez automatiquement "monter" votre environnement virtualenv . Il y a beaucoup de scripts mais celui-ci est le mien (ceci se trouve au bas de mon ~/.bashrc :

export VENVDIR="/web"
export VENVDIR_VENV="$VENVDIR/venv"

venvcd() {
        wd=$(pwd)
        [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]] && wasin=true || unset wasin

        builtin cd "[email protected]"

        wd=$(pwd)
        if [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]]; then
                source $VENVDIR_VENV/bin/activate
        else
                [ $wasin ] && deactivate
        fi
}
alias cd="venvcd"

cd .

Chaque fois que je cd dans /web (où tous mes sites de développement sont stockés), il monte la virtualenv pour moi. Notez que je n’ai qu’un seul environnement pour tous mes sites, donc cela ne vous accompagnera que si vous faites quelque chose de similaire. Il y a beaucoup d'autres façons de faire les mêmes choses .

    
réponse donnée Oli 23.01.2014 - 11:58
la source
3

Il est facile d’utiliser virtualenvwrapper , de loin le plus simple pour gérer Python 2.7 / 3.x environnements virtuels dans Ubuntu / Debian.

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

Vous pouvez éventuellement autoriser --system-site-packages à réutiliser les packages de sites globaux.
virtualenv installe pip et d’autres outils de configuration python pour aidez-nous à démarrer rapidement.

$ pip install Django
$ pip install -r requirements.txt
    
réponse donnée Sandeep 18.06.2016 - 14:07
la source
2

Django pour Python3 a été ajouté récemment. Alors tapez simplement un terminal:

apt-get install python3-django

    
réponse donnée Thomas Goirand 12.08.2014 - 09:37
la source

Lire d'autres questions sur les étiquettes