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 .