J'ai installé Django avec cette commande:
Sudo apt-get install python-Django
Et il a installé la version 1.5.4-1ubuntu1. La documentation Django indique qu'à partir de la version 1.5, Django prend en charge Python 3. Pourtant, lorsque j'exécute l'interpréteur python 3 et que je tente d'importer Django, ça dit qu'il n'y a pas un tel module. J'ai essayé de chercher une version python3 de Django, mais aucun paquet de ce type n'existe. Comment puis-je obtenir Django travailler sur python3? Je préférerais utiliser les paquets ubuntu plutôt que d'installer les choses manuellement.
J'ai compris 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 obtenir pip3 par:
Sudo apt-get install python3-pip
Je suggérerais fortement d'éviter pip3
d'installer quelque chose dans les packages de site système. J'ai fait ces arguments auparavant mais je vais vous donner les notes:
Je recommanderais fortement d'utiliser virtualenv
name__. C’est une douleur énorme dans les endroits où aller, mais une fois que vous l’avez configuré, vous avez un environnement complet Python sous votre contrôle complet. Cela signifie plus de travail (vous devrez vérifier les mises à jour et pip
ne vous aidera pas vraiment là-bas), mais vous n’aurez pas à vous soucier de ce que fait Ubuntu.
J'ai un environnement pour chaque site (assis dans un sous-répertoire appelé venv
name__). Certaines personnes - y compris moi, il était une fois - préfèrent partager leurs environnements entre plusieurs sites. Je trouvais cela plus facile à gérer en termes d’émission de mises à jour, mais certains sites peuvent être fragiles ou nécessiter d’anciennes versions, ce qui empêche tout l’environnement. YMMV.
Pour ce qui est de l'installation, et juste pour me gifler, virtualenv
n'est pas encore emballé 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 bash PS1 devrait maintenant être précédé de (myenv)
pour vous faire savoir que vous vous trouvez dans un environnement différent. Nous pouvons tester l'environnement pour vérifier que nous avons les bonnes versions (sans utiliser les versions système pour commencer):
$ python --version
Python 3.3.2+
$ which python pip
/home/oli/Desktop/myenv/bin/python
/home/oli/Desktop/myenv/bin/pip
Et ensuite, vous pouvez continuer comme si vous étiez le 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 cela (vous devriez), utilisez son indicateur -H (ou son argument de configuration de base) pour indiquer où se trouve l'environnement Python.
Pour faciliter le développement, vous pouvez "monter" automatiquement votre environnement virtualenv
name__. Il existe de nombreux scripts mais celui-ci est le mien (il 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 "$@"
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ù sont stockés tous mes sites Web de développement), il monte virtualenv pour moi. Notez que je n'ai qu'un seul environnement pour tous mes sites, il ne vous suivra que si vous faites quelque chose de similaire. Il y a beaucoup d'autres façons de faire des choses similaires .
Il existe un moyen simple d'utiliser virtualenvwrapper , de loin le plus facile à gérer Python 2.7/3.x environnements virtuels sous Ubuntu/Debian.
$ Sudo apt-get install python3 virtualenvwrapper
$ mkvirtualenv <venv> -p python3
$ workon <venv> # sets into the virtualenv from any terminal.
Activez éventuellement --system-site-packages
pour réutiliser les packages de site global.
virtualenv installe pip et d'autres outils d'installation python pour nous aider à démarrer rapidement.
$ pip install Django
$ pip install -r requirements.txt
Django pour Python3 a été ajouté récemment. Donc, tapez simplement un terminal:
apt-get install python3-Django