python:了解多个版本,符号链接和virtualenv

时间:2018-12-14 13:51:06

标签: python virtualenv homebrew multiple-versions

我需要帮助来了解MacOS 10.12上Python版本的组织。我同时拥有pipbrew,但没有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

我的问题

  1. 为什么似乎有多个python3,但是$which -a python3只返回一个目录?

  2. 如果由于别名我当前的python3版本是3.6.5,那么为什么仍然有指向3.7.0的符号链接?

  3. 如何使我的virtualenv工作?它的解释器是否仍可以保留3.6.5或我必须将其更改为3.7.0?

  4. brew更新在python版本和符号链接方面还有哪些其他“破绽”?

我知道问题很广泛,但是任何可以帮助我更好地理解此python环境内容的东西,我将不胜感激!除了使用python语言进行编程外,我对其设置>。<

的了解不多。

1 个答案:

答案 0 :(得分:1)

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

¯\ _(ツ)_ /¯