63 votes

Impossible d'installer via pip avec Virtualenv

Voici l'erreur que j'obtiens lorsque j'exécute pip :

serkan$ rm -r mysite
serkan$ pwd
/Users/serkan/Desktop/Python Folder
serkan$ virtualenv mysite 
New python executable in mysite/bin/python
Installing setuptools............done.
Installing pip...............done.
serkan$ source mysite/bin/activate
(mysite)serkan$ pip install pinax
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$ python pip install pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip 
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ pip
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$ pip install Pinax
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$

129voto

icktoofay Points 60218

Créez votre environnement virtualenv dans un chemin sans espaces. C'est pourquoi cela se produit :

Lorsque vous créez un environnement, il met en place un bin répertoire. Dans ce bin sont tous les exécutables relatifs à l'environnement. Certains sont des scripts. Comme vous le savez peut-être, les hashbangs sont utilisés pour indiquer au système quel interpréteur utiliser pour exécuter le script. Vous pouvez voir cela en haut des scripts souvent :

#!/usr/bin/env python

Si le script est à /tmp/test.py qui indique au système de lancer cette commande pour exécuter le script :

/usr/bin/env python /tmp/test.py

Dans votre cas, virtualenv crée des scripts comme celui-ci :

#!/tmp/oh no/bin/python

Quand le système essaiera d'exécuter cela, il essaiera d'exécuter la commande /tmp/oh avec les arguments no/bin/python y /tmp/test.py . /tmp/oh n'existe pas, donc il échoue.

22voto

pip ne fonctionnera pas si :

  • Vous n'avez pas installé pip dans votre système. (vous devez d'abord installer pip dans votre système avant de pouvoir l'utiliser dans virtualenv. Pour installer pip sur Ubuntu, utilisez la commande sudo apt-get install python-pip o sudo apt-get install python3-pip )
  • Le chemin d'accès au dossier de votre environnement virtuel contient un ou plusieurs espaces. . (Exemple : /home/nom d'utilisateur/mon nom de dossier avec des espaces/newvirtualenv)
  • Le chemin d'accès au dossier de votre environnement virtuel est trop long. Exemple : /home/username/mytoobigpath/somefolder/anotherfolder/someanotherfolder/someanotherfolderagain/myvirtualenv. (Essayez de renommer les dossiers parents avec des noms plus petits)

Si vous ne pouvez pas renommer les dossiers ou changer le chemin d'accès pour une raison quelconque, allez à yourvirtualenvfolder/bin (en utilisant cd ) et ensuite essayer ./python pip install packagename .

21voto

Pour ceux qui rencontrent ce problème, j'ai découvert que la longueur du chemin pouvait également poser problème, sans utiliser d'espaces (Ubuntu 12.04) :

virtualenv /home/user/some/very/longer/path/without/spaces/etc/venv

a échoué, tandis que

virtualenv /home/user/some/very/long/path/without/spaces/etc/venv

a très bien fonctionné, voir le commentaire d'Alex ci-dessous.

14voto

Bryan Head Points 3077

Icktoofay a raison sur la cause.

Pour utiliser pip avec virtualenv dans un répertoire avec des espaces, éditez /path/to/env/bin/pip en remplaçant l'ensemble des éléments en haut de l'écran par #!/usr/bin/env python (ou #!/usr/bin/env pypy si vous utilisez pypy).

Notez que virtualenv modifie votre environnement de telle sorte que /usr/bin/env python fait référence à la python défini par le virtualenv.

2voto

Bob de Graaf Points 1054

Sous Python 3.7, je n'ai pas eu de problème avec cela, mais lorsque j'ai dû utiliser Python 3.6, j'ai eu un problème. La solution la plus simple que j'ai trouvée sur Github était la suivante :

Au lieu de :

pip install -r requirements.txt

J'utilise :

python env/bin/pip install -r requirements.txt

Ainsi, vous pointez directement sur le fichier pip dans le répertoire de votre environnement virtuel. Bien sûr, vous devez d'abord l'activer avant d'essayer. J'espère que cela aidera quelqu'un qui viendra ici !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X