python:了解多个版本、符号链接和 virtualenv
python: Understanding multiple versions, symlinks, and virtualenv
我需要帮助了解 Python 版本在我的 MacOS 10.12 上的组织。我有 pip
和 brew
,没有 conda
。在我使用 Python 3.6.5 之前,然后 brew
更新并安装了 Python 3.7.0。
然后我在尝试创建一个新的虚拟环境时遇到了以下问题:
$ virtualenv venv_pointnet
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python3/bin/python3.6: bad interpreter: No such file or directory
然后我将这一行添加到我的 ~/.bash_profile
:
alias python3="/usr/local/Cellar/python/3.6.5/bin/python3.6"
但问题依然存在....
这是我系统上的一些 Python 信息。
$ head -1 $(which virtualenv)
#!/usr/local/opt/python3/bin/python3.6
$ python3 --version
Python 3.6.5
$ which -a python3
/usr/local/bin/python3
$ ls -l /usr/local/bin/python3
lrwxr-xr-x 1 myUser admin 34 Oct 28 21:51 /usr/local/bin/python3 -> ../Cellar/python/3.7.0/bin/python3
$ ls -l /usr/local/opt/python3
lrwxr-xr-x 1 myUser admin 22 Oct 28 21:51 /usr/local/opt/python3 -> ../Cellar/python/3.7.0
我的问题
为什么好像有多个python3,但是$which -a python3
只有returns一个目录?
如果我当前的 python3 版本是 3.6.5 多亏了别名,那为什么还有指向 3.7.0 的符号链接?
如何让我的 virtualenv
工作?它的解释器仍然是 3.6.5 还是我必须将它更改为 3.7.0?
关于 python 版本和符号链接,brew
更新还有哪些其他内容 'broken'?
我知道问题很广泛,但是任何能帮助我更好地理解这个 python 环境的东西,我将不胜感激!除了使用 python 语言编程外,我对它的设置了解不多 >.<
1
因为 /usr/local/bin/python3
是一个特定版本的符号链接
2
您创建了一个别名,但这实际上并没有改变 /usr/local/bin/python3
的符号链接。不过,如果你真的想使用 3.6.5 版,你可以这样做:
rm /usr/bin/python3
ln -s /usr/bin/python3.6 /usr/bin/python3
创建相应的符号链接
3
我不相信你可以更改 virtualenv python 的版本。您可能想尝试重新安装它
4
¯\_(ツ)_/¯
我需要帮助了解 Python 版本在我的 MacOS 10.12 上的组织。我有 pip
和 brew
,没有 conda
。在我使用 Python 3.6.5 之前,然后 brew
更新并安装了 Python 3.7.0。
然后我在尝试创建一个新的虚拟环境时遇到了以下问题:
$ virtualenv venv_pointnet
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python3/bin/python3.6: bad interpreter: No such file or directory
然后我将这一行添加到我的 ~/.bash_profile
:
alias python3="/usr/local/Cellar/python/3.6.5/bin/python3.6"
但问题依然存在....
这是我系统上的一些 Python 信息。
$ head -1 $(which virtualenv)
#!/usr/local/opt/python3/bin/python3.6
$ python3 --version
Python 3.6.5
$ which -a python3
/usr/local/bin/python3
$ ls -l /usr/local/bin/python3
lrwxr-xr-x 1 myUser admin 34 Oct 28 21:51 /usr/local/bin/python3 -> ../Cellar/python/3.7.0/bin/python3
$ ls -l /usr/local/opt/python3
lrwxr-xr-x 1 myUser admin 22 Oct 28 21:51 /usr/local/opt/python3 -> ../Cellar/python/3.7.0
我的问题
为什么好像有多个python3,但是
$which -a python3
只有returns一个目录?如果我当前的 python3 版本是 3.6.5 多亏了别名,那为什么还有指向 3.7.0 的符号链接?
如何让我的
virtualenv
工作?它的解释器仍然是 3.6.5 还是我必须将它更改为 3.7.0?关于 python 版本和符号链接,
brew
更新还有哪些其他内容 'broken'?
我知道问题很广泛,但是任何能帮助我更好地理解这个 python 环境的东西,我将不胜感激!除了使用 python 语言编程外,我对它的设置了解不多 >.<
1
因为 /usr/local/bin/python3
是一个特定版本的符号链接
2
您创建了一个别名,但这实际上并没有改变 /usr/local/bin/python3
的符号链接。不过,如果你真的想使用 3.6.5 版,你可以这样做:
rm /usr/bin/python3
ln -s /usr/bin/python3.6 /usr/bin/python3
创建相应的符号链接
3
我不相信你可以更改 virtualenv python 的版本。您可能想尝试重新安装它
4
¯\_(ツ)_/¯