22 votes

`python3.7 : mauvais interprète : No such file or directory`

J'ai installé Python, pip3, et virtualenv comme suit ce guide pour TensorFlow :

brew install python
pip3 install -U virtualenv

J'ai ensuite pu créer un environnement virtuel avec :

virtualenv --system-site-packages -p python3 ./venv

J'ai ensuite essayé d'installer TensorFlow avec

pip install --upgrade tensorflow

mais il a échoué parce que TensorFlow n'est pas encore compatible avec Python 3.7 . J'ai donc supprimé Python 3.7 avec brew remove python et installé la version 3.6.7 à partir de un installateur . Mais en faisant fonctionner le même virtualenv échoue désormais :

$ virtualenv --system-site-packages -p python3 ./venv
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python3.7: bad interpreter: No such file or directory
$ which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3

Ainsi, le virtualenv Le lien vers l'exécutable répertorie la version la plus récente de Python, même après sa suppression.

En outre, virtualenv listes brew comme groupe d'utilisateurs, ce qui est également source de confusion :

$ ls -la /usr/local/bin/virtualenv
-rwxr-xr-x  1 user  brew  232 29 Nov 17:06 /usr/local/bin/virtualenv

J'ai essayé de désinstaller virtualenv avec à la fois pip y pip3 et j'obtiens :

Skipping virtualenv as it is not installed.

Comment puis-je résoudre ce problème ?

11voto

vampire203 Points 181

Après quelques heures, une solution a été d'installer virtualenv à nouveau avec pip puis l'enlever à l'aide de pip :

$ ls -la /usr/local/bin/virtualenv
-rwxr-xr-x  1 user  brew  232 29 Nov 17:06 /usr/local/bin/virtualenv
$ pip install virtualenv
...
$ pip uninstall virtualenv
...
$ which virtualenv
$ ls -la /usr/local/bin/virtualenv
ls: /usr/local/bin/virtualenv: No such file or directory

Puis l'installer à nouveau avec pip3 :

$ pip3 install virtualenv
Collecting virtualenv
...
Installing collected packages: virtualenv
Successfully installed virtualenv-16.1.0

Remarquez l'utilisation de pip3 et non pip contrairement à ce lien , signalée par TensorFlow .

Et maintenant, la création de l'environnement virtuel fonctionne :

$ virtualenv --system-site-packages -p python3 ./venv
Running virtualenv with interpreter /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in ~/venv/bin/python3
Also creating executable in ~/venv/bin/python
Installing setuptools, pip, wheel...
done.

10voto

amaurer Points 101

J'ai créé un lien symbolique au lieu d'une copie.

brew install python@3.7
ln -s /usr/local/opt/python@3.7/bin/python3.7 /usr/local/opt/python/bin/python3.7

4voto

David Villamizar Points 141

Dans mon cas, j'avais installé pipenv sur MacOS avec :

brew install pipenv

Il essayait d'utiliser Python 3.6 au lieu de la 3.7 que j'avais en fait.

J'ai donc résolu le problème en désinstallant :

brew uninstall pipenv

...puis en l'installant à nouveau avec pip :

pip3 install pipenv

1voto

Matthew Hinea Points 111

Essayez d'installer Python@3.7 via homebrew et ensuite cp Cette installation doit être placée dans le répertoire où le programme s'attend à la trouver.

brew install python@3.7
cp -r /usr/local/opt/python@3.7/bin/python3.7 /usr/local/opt/python/bin/python3.7

1voto

Benjamin Crouzier Points 5418

Cela a résolu le problème dans mon cas : (mon fichier env s'appelle .venv)

mv .venv .venv_old
python3.7 -m venv .venv
source .venv/bin/activate
pip install wheel
pip install --upgrade pip wheel setuptools
pip install -r requirements.txt

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X