J'ai du mal à installer twisted
pip --version
pip 1.1 depuis /home/chris/GL/GLBackend/glenv/lib/python2.7/site-packages/pip-1.1-py2.7.Egg (python 2.7)
Créer un environnement virtuel
chris@chris-mint ~/GL/GLBackend $ Sudo virtualenv -p python2.7 glenv
Exécution de virtualenv avec l'interpréteur /usr/bin/python2.7 Nouveau python exécutable dans glenv/bin/python2.7 Création également d'un exécutable dans glenv/bin/python Installation de la distribution ....... .................................................. .................................................. .................................................. ................................ terminé Installation de pip .............. .terminé.
Au cas où, j'activerais toutes les autorisations
chris@chris-mint ~/GL/GLBackend $ Sudo chmod -R 777 glenv
chris@chris-mint ~/GL/GLBackend $ source glenv/bin/activate
(glenv)chris@chris-mint ~/GL/GLBackend $ pip freeze
argparse == 1.2.1 distribuer == 0.6.24 wsgiref == 0.1.2
twisted n'est pas répertorié ici comme installé
(glenv)chris@chris-mint ~/GL/GLBackend $ Sudo pip install twisted
Exigence déjà satisfaite (utilisez --upgrade pour mettre à niveau): torsadée dans /usr/local/lib/python2.7/dist-packages Exigence déjà satisfaite (utilisez --upgrade pour mettre à niveau): zope.interface> = 3.6.0 in/usr/local/lib/python2.7/dist-packages (de twisted) Exigence déjà satisfaite (utilisez --upgrade pour mettre à niveau): distribuez dans /usr/local/lib/python2.7/dist-packages (de zope.interface > = 3.6.0-> twisted) Nettoyage en cours ... (glenv) chris @ chris-mint ~/GL/GLBackend $ pip Uninstall twisted Impossible de désinstaller l'exigence twisted, not installed Stockage du journal complet dans /home/chris/.pip/ pip.log
Mais quand je l'installe, il dit que c'est déjà installé. Forcer l'installation:
Sudo pip install -I twisted
Téléchargement/déballage de twisted Téléchargement de Twisted-12.3.0.tar.bz2 (2.6Mb): 2.6Mb téléchargés Running setup.py Egg_info pour le paquet twisted. . .
Zope torsadée installée avec succès distribuer Nettoyage en cours ...
Et pourtant il n'est toujours pas installé
(glenv)chris@chris-mint ~/GL/GLBackend $ pip freeze
argparse == 1.2.1 distribuer == 0.6.24 wsgiref == 0.1.2
** Lorsque j'essaie d'exécuter Python qui utilisent twisted, j'obtiens une erreur indiquant que twisted n'est pas installé. C'est-à-dire:
ImportError: aucun module nommé twisted.python **
Le problème ici est que vous utilisez Sudo
alors que vous ne devriez pas l'être. Et cela fait que pip
essaie de s'installer dans /usr/local/lib
au lieu de ~/glenv/lib
. (Et, parce que vous avez utilisé Sudo
, cela réussit, mais cela ne vous aide pas, car vous n'autorisez pas les packages de sites système dans votre venv.)
Il y a plusieurs raisons Sudo pip
pourrait conduire à ce comportement, mais le plus probable est le suivant: sur la plupart des systèmes (y compris les différentes boîtes Mac et RHEL/CentOS auxquelles j'ai un accès immédiat), le fichier sudoers
réinitialisera votre environnement, puis ajoutera de retour dans une poignée de variables d'environnement sur la liste blanche. Cela signifie que lorsque vous Sudo pip
, il ne verra pas les variables d'environnement que virtualenv
configure, donc il reviendra à faire la chose par défaut et à installer dans votre système Python, au lieu de votre venv.
Mais vraiment, cela n'a pas d'importance pourquoi cela se produit. La réponse est la même: faites simplement pip install
au lieu de Sudo pip install
.
Notez que vous aussi voulez supprimer le Sudo
sur l'appel de virtualenv
, car cela entraînera probablement une configuration incorrecte du venv (c'est pourquoi vous avez besoin du Sudo chmod
, ce qui ne serait pas nécessaire autrement). L'intérêt de l'installation de choses sous votre répertoire personnel est que vous pouvez le faire avec vos autorisations utilisateur normales.
En guise de remarque, vous souhaiterez peut-être également effectuer une mise à niveau vers une version plus récente virtualenv
/pip
, car la version 1.8 et la version 1.2 ont quelques corrections de bugs et améliorations. Mais j'ai vérifié que j'obtiens exactement le même problème que vous même avec les dernières versions (1.8.4 et 1.2.1), donc je ne pense pas que ce soit pertinent ici.