【问题标题】:python alias in ~/.zshrc overrides virtual environment source~/.zshrc 中的 python 别名覆盖虚拟环境源
【发布时间】:2022-06-14 04:09:53
【问题描述】:

我在终端会话初始化 shell 脚本 ~/.zshrc 中设置了几个别名

alias python=/opt/homebrew/bin/python3.9
alias pip=/opt/homebrew/bin/pip3.9

这些干扰了我的虚拟环境工作流程:

>>> cd my_project
>>> python -m venv venv
>>> source venv/bin/activate
>>> which python
python: aliased to /opt/homebrew/bin/python3.9

您可以看到虚拟环境未激活的情况。关于如何在我的 ~/.zshrc 中设置这些别名时如何使用 venv 的任何建议?

【问题讨论】:

  • 我只是重命名别名,例如py39pip39.
  • 也许考虑使用pyenv,如果您有多个要使用的 Python 安装(或者甚至只是一个不是系统 Python,但您通常想使用的安装)。跨度>
  • 你能把unalias python pip 放在venv/bin/activate 中吗?我自己不使用 Zsh,所以我不确定。
  • 不要使用别名,而是在 $PATH 的某处放置一个符号链接。 Virtualenv 激活会预先添加路径,所以它会赢。
  • 这些都是好主意。运行unalias python pip && source venv/bin/activate 可以解决问题。问题是我的 IDE(vscode)不会那样做。重命名别名是我试图避免的,但我可能会这样做。听说过 pyenv 在 mac 上处理 python 的好消息

标签: python bash python-venv


【解决方案1】:

创建一个目录~/bin。在该目录中创建两个链接:

ln -vs /opt/homebrew/bin/python3.9 ~/bin/python
ln -vs /opt/homebrew/bin/pip3.9 ~/bin/pip

编辑您的.zshrs 以包括:

export PATH=~/bin:$PATH

链接将隐藏正常的可执行文件。当 virtualenv 被激活时,链接将被 virtualenv 设置的 PATH 隐藏。

【讨论】:

  • 这是有效的,而且似乎完全符合我的要求!
【解决方案2】:

您可以更改您的别名:

python = "python3.9"

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 2019-09-24
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多