python:了解多个版本、符号链接和 virtualenv
Posted
技术标签:
【中文标题】python:了解多个版本、符号链接和 virtualenv【英文标题】:python: Understanding multiple versions, symlinks, and virtualenv 【发布时间】:2019-05-15 19:13:04 【问题描述】:我需要帮助了解我的 MacOS 10.12 上的 Python 版本的组织。我有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
却只返回一个目录?
如果我当前的 python3 版本是 3.6.5,这要归功于别名,那么为什么仍然有指向 3.7.0 的符号链接?
如何使我的virtualenv
工作?它的解释器还能保持 3.6.5 还是我必须将其更改为 3.7.0?
brew
更新可能在 python 版本和符号链接方面“破坏”了哪些其他内容?
我知道这些问题很广泛,但是任何能帮助我更好地理解这个 python 环境的东西,我将不胜感激!除了用python语言编程之外,我对它的设置没有太多了解>.
【问题讨论】:
【参考方案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
¯\_(ツ)_/¯
【讨论】:
感谢您的回答!我不明白你的#3吗?使用virtualenv
创建新的虚拟环境将无法正常工作,因为它找不到 python 3.6 解释器...
我重新安装了virtualenv
,现在又可以使用了,谢谢!以上是关于python:了解多个版本、符号链接和 virtualenv的主要内容,如果未能解决你的问题,请参考以下文章