`python3.7:错误的解释器:没有这样的文件或目录`

mig*_*rin 18 virtualenv

我在TensorFlow 的本指南中安装了 Python、pip3 和 virtualenv :

brew install python
pip3 install -U virtualenv
Run Code Online (Sandbox Code Playgroud)

然后我能够创建一个虚拟环境:

virtualenv --system-site-packages -p python3 ./venv
Run Code Online (Sandbox Code Playgroud)

然后我尝试安装 TensorFlow

pip install --upgrade tensorflow
Run Code Online (Sandbox Code Playgroud)

但它失败了,因为 TensorFlow 尚未与 Python 3.7 兼容。所以我brew remove python安装程序中删除了 Python 3.7并安装了 3.6.7 。但是virtualenv现在运行相同的命令失败了:

$ 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
Run Code Online (Sandbox Code Playgroud)

因此virtualenv,即使在删除之后,指向可执行文件的链接也会列出最新的 Python 版本。

此外,virtualenv列出brew作为用户组,其也被迷惑:

$ ls -la /usr/local/bin/virtualenv
-rwxr-xr-x  1 user  brew  232 29 Nov 17:06 /usr/local/bin/virtualenv
Run Code Online (Sandbox Code Playgroud)

我试着卸载virtualenvpippip3我得到:

Skipping virtualenv as it is not installed.
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

mig*_*rin 9

几个小时后,一种解决方案是使用virtualenv再次安装pip,然后使用 删除它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
Run Code Online (Sandbox Code Playgroud)

然后再次安装它pip3

$ pip3 install virtualenv
Collecting virtualenv
...
Installing collected packages: virtualenv
Successfully installed virtualenv-16.1.0
Run Code Online (Sandbox Code Playgroud)

请注意TensorFlow 所指向的pip3和 not的使用pip,与此链接不同。

现在创建虚拟环境有效:

$ 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.
Run Code Online (Sandbox Code Playgroud)


小智 7

我创建了一个符号链接而不是复制。

brew install python@3.7
ln -s /usr/local/opt/python@3.7/bin/python3.7 /usr/local/opt/python/bin/python3.7
Run Code Online (Sandbox Code Playgroud)