代码之家  ›  专栏  ›  技术社区  ›  Alex

~/.zshrc中的python别名覆盖虚拟环境源

  •  0
  • Alex  · 技术社区  · 4 年前

    我在终端会话初始化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
    

    您可以看到虚拟环境是如何未激活的。关于如何与 venv 在我的~/.zshrc中设置这些别名时?

    1 回复  |  直到 4 年前
        1
  •  5
  •   KamilCuk    4 年前

    创建目录 ~/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
  •  0
  •   Harkaran Brar    3 年前

    您可以更改您的别名:

    python = "python3.9"
    
        3
  •  0
  •   5top1t    2 年前

    我在我的机器上注意到了 python3 pip3 当激活或停用venv时,命令总是指向正确的目录。如果您的机器上是这种情况,请使用它进行别名。

    alias python='eval $(which python3)'
    alias pip='eval $(which pip3)'
    

    更新 python pip 使用虚拟环境时使用别名。

    推荐文章