【问题标题】:python: Understanding multiple versions, symlinks, and virtualenvpython:了解多个版本、符号链接和 virtualenv
【发布时间】:2019-05-15 19:13:04
【问题描述】:

我需要帮助了解我的 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语言编程之外,我对它的设置没有太多了解>.

【问题讨论】:

    标签: python virtualenv homebrew multiple-versions


    【解决方案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,现在又可以使用了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2022-01-12
    • 2020-07-22
    • 2014-06-17
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    相关资源
    最近更新 更多