Problème avec virtualenv sous Mac OS X

J’ai installé virtualenv via pip et obtenez cette erreur après avoir créé un nouvel environnement:

 selenium:~ auser$ virtualenv new New python executable in new/bin/python ERROR: The executable new/bin/python is not functioning ERROR: It thinks sys.prefix is u'/System/Library/Frameworks/Python.framework/ Versions/2.6' (should be '/Users/user/new') ERROR: virtualenv is not compatible with this system or executable 

Dans mon environnement:

 PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages PATH=/System/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

Comment puis-je réparer cela?

Merci.

Si vous continuez à avoir des problèmes avec virtualenv , vous pourriez plutôt essayer pythonbrew . C’est une solution alternative au même problème. Il fonctionne plus comme le rvm de Ruby: il construit et crée une instance complète de Python, sous $HOME/.pythonbrew , puis configure des fonctions bash qui vous permettent de basculer facilement entre les versions. Lorsque virtualenv occulte la version du système de Python, en utilisant des liens symboliques dans le cadre de sa solution, pythonbrew construit des installations entièrement autonomes de Python.

J’ai utilisé virtualenv pendant des années. C’est une solution décente, mais je suis passé à pythonbrew récemment. Avoir des instances Python complètement autonomes signifie que l’installation d’une nouvelle prend un certain temps (puisque pythonbrew comstack en fait Python à partir de zéro), mais la nature autonome de chaque installation me pythonbrew . Et le disque n’est pas cher.

Juste au cas où quelqu’un chercherait toujours la réponse.

Je suis tombé sur ce même problème aujourd’hui et j’ai réalisé qu’Anaconda étant déjà installé, je n’aurais pas dû utiliser pip install virtualenv pour installer l’environnement virtuel, car cela me donnerait le message d’erreur lorsque j’essayerais de l’initialiser plus tard. Au lieu de cela, j’ai essayé l’ conda install virtualenv puis entré virtualenv env_mysite et le problème résolu.

Dans le cas où quelqu’un dans le futur se heurterait à ce problème – ceci est dû à votre dissortingbution Python par défaut étant un conda. Conda a son propre processus de configuration virtuel mais si vous avez la dissortingbution de conda de python et souhaitez toujours utiliser virtualenv, voici comment:

  1. Trouvez l’autre dissortingbution de python sur votre machine: ls -ls /usr/bin/python*

  2. Prenez note de la version Python disponible qui n’est pas conda et exécutez le code ci-dessous (note pour python 3 et supérieur, vous devez d’abord mettre à niveau virtualenv): virtualenv -p python2.7(or your python version) flaskapp

Comme @RyanWilcox mentionné, vous pourriez par inadvertance pointer virtualenv vers la mauvaise installation Python. Virtualenv est livré avec un indicateur -p pour vous permettre de spécifier l’interpréteur à utiliser.

Dans mon cas,

 virtualenv test_env 

jeté la même erreur que le vôtre, tout en

 virtualenv -p python test_env 

travaillé parfaitement.

Si vous appelez virtualenv -h , la documentation de l’indicateur -p vous indiquera quel python il devrait utiliser; si cela semble difficile, essayez de passer -p python . Pour référence, je suis sur virtualenv 1.11.6.

J’ai moi-même rencontré ce problème. J’ai noté les instructions dans un README, que j’ai collé ci-dessous ….

J’ai trouvé deux choses qui fonctionnent:

  1. Assurez-vous que vous exécutez la dernière virtualenv (1.5.1, de cette écriture)
  2. Si vous utilisez un Python non-système comme Python standard (quel python vérifier), utilisez-le avec force.

    Au lieu de virtualenv thing utilisez /usr/bin/python2.6 PATH/TO/VIRTUALENV thing (ou tout which python renvoyé – c’est ce que j’ai fait quand j’ai rencontré ce problème)

J’ai eu le même problème et comme je le vois maintenant, il a été causé par une installation désordonnée de Python. J’ai installé OS X depuis plus d’un an depuis que j’ai acheté un nouvel ordinateur portable et j’ai déjà installé et réinstallé Python plusieurs fois en utilisant différentes sources (binarys officiels, homebrew, binarys officiels + réglages faits à la main comme décrit ici ). Ne me demandez pas pourquoi j’ai fait ça, je suis juste un débutant malheureux, pensant que tout se réparera après avoir été réinstallé.

Donc, un certain nombre de Pythons différents ont été installés ici et là, ainsi que de nombreux liens physiques qui les pointaient de manière incohérente. Finalement, j’en ai eu marre d’eux et OS X réinstallé soigneusement nettoyé le système de tous les Pythons que j’ai trouvé en utilisant l’utilitaire de find . De plus, j’ai dissocié tous les liens pointant vers n’importe quel Python de partout. Ensuite, j’ai installé un nouveau Python en utilisant homebrew, installé virtualenv et tout fonctionne comme un charme maintenant.

Donc, ma recette est la suivante:

sudo find / -iname "python*" > python.log

Ensuite, parsingz ce fichier, supprimez et dissociez tout ce qui concerne la version de Python dont vous avez besoin, réinstallez-le (je l’ai fait avec homebrew, peut-être que l’installation officielle fonctionnera également) et profitez-en. Assurez-vous de dissocier tout ce qui est lié à python de /usr/bin et /usr/local/bin et de supprimer toutes les instances de Frameworks/Python.framework/Versions/ dans /Library et /System/Library .

C’est peut-être un sale coup, mais ça a fonctionné pour moi. Je préfère ne conserver aucune bibliothèque Python à l’échelle du système, à l’exception de pip et virtualenv et créer des environnements virtuels pour tous mes projets. Je ne m’occupe donc pas de supprimer les bibliothèques importantes. Si vous ne voulez pas tout supprimer, essayez toujours de comprendre si vos Pythons sont, quels liens pointent vers eux et d’où. Pensez ensuite à ce qui peut causer le problème et corrigez-le.

J’ai rencontré une variante de cette erreur “non fonctionnelle”. J’essayais de créer un environnement dans un dossier incluant le chemin “… / Programming / Developing …” qui est en fait “/ Users / eric / Documents / Programming: Developing /”

et a cette erreur:

 ImportError: No module named site ERROR: The executable env/bin/python2.7 is not functioning ERROR: It thinks sys.prefix is u'/Users/eric/Documents/Programming:Developing/heroku' (should be u'/Users/eric/Documents/Programming:Developing/heroku/env') ERROR: virtualenv is not compatible with this system or executable 

J’ai essayé la même chose dans un dossier différent et ça a bien fonctionné, pas d’erreurs et env / bin a ce que j’attends (active, etc.).

Les solutions ci-dessus ont échoué pour moi, mais les suivantes ont fonctionné:

 python3 -m venv --without-pip  . /bin/activate curl https://bootstrap.pypa.io/get-pip.py | python deactivate 

C’est du piratage, mais oui, le problème de base semble vraiment être le pip.

J’ai le même problème et j’ai constaté que cela se produit lorsque vous ne spécifiez pas correctement le nom de l’exécutable python. Donc, pour python 2x, par exemple:

virtualenv --system-site-packages -p python mysite

Mais pour python 3.6, vous devez spécifier le nom de l’exécutable comme python3.6

virtualenv --system-site-packages -p python3.6 mysite

Sur OSX 10.6.8 leopard , après avoir été “mis à niveau” vers Lion, puis rétrogradé (ouch – AVOID!), J’ai suivi la méthode de Wolf Paulus il y a quelques mois, complètement ignorante de Python. Supprimé python 2.7 complètement et “remplacé” avec 3.something . Mon programme FTP a cessé de fonctionner (Fetch) et sait comment utiliser Python 2.7. Donc, à ce moment-là, j’ai téléchargé la dernière version de 2.7 de python.org et son programme d’installation m’a permis de démarrer – jusqu’à ce que j’essaie d’utiliser virtualenv .

Ce qui semble avoir fonctionné pour moi cette fois-ci était la suppression totale de Python 2.7 avec ce code:

 sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7 

supprimer tous les liens avec ce code:

 sudo rm /usr/bin/pydoc sudo rm /usr/bin/python sudo rm /usr/bin/pythonw sudo rm /usr/bin/python-config 

J’avais essayé d’installer python avec homebrew , mais apparemment cela ne fonctionnera pas à moins que tous les XTools soient installés, ce que j’ai évité, puisque la version de XTools compatible avec 10.6 est ancienne et que tout ce dont j’ai besoin est GCC, le compilateur , que vous pouvez obtenir ici .

Je viens donc de l’installer avec le dernier téléchargement de python.org .

Ensuite, il fallait réinstaller easy_install, pip, virtualenv.

Je me demande sans aucun doute quand il sera temps pour un nouvel ordinateur portable, mais il y a beaucoup à dire sur l’achat de moins de matériel (travail forcé, exploitation minière contraire à l’éthique, etc.).

J’ai fait les étapes suivantes pour faire fonctionner virtualenv:

Mettez à jour virtualenv comme suit:

 ==> sudo pip install --upgrade virtualenv 

Initialiser python3 virtualenv:

 ==> virtualenv -p python3 venv 

Ouvrez le terminal et tapez /Library/Frameworks/Python.framework/Versions/

Puis tapez ls /Library/Frameworks/Python.framework/Versions/2.7/bin/ si vous utilisez Python2 (ou autre).

Modifiez ~ / .bash_profile et ajoutez la ligne suivante: export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

cat ~/.bash_profile

Dans mon cas, le contenu de ~ / .bash_profile est le suivant:

export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

Maintenant, la commande virtualenv devrait fonctionner.

J’ai eu ce même problème, et je peux confirmer que le problème était avec un fichier virtualenv.py obsolète.

Il n’était pas nécessaire de faire une installation complète –upgrade .

Le remplacement du fichier virtualenv.py par la version la plus récente était suffisant.

J’ai aussi eu ce problème et j’ai essayé la méthode suivante qui a fonctionné pour moi:

 conda install virtualenv 

virtualenv --system-site-packages /anaconda/envs/tensorflow (ici envs conserve tous les environnements virtuels créés par l’utilisateur)

 source /anaconda/envs/tensorflow/bin/activate 

J’espère que c’est utile.