用于获取 Python 虚拟环境的 Bash 脚本

用于获取 Python 虚拟环境的 Bash 脚本

加载 Python 虚拟环境时我需要运行:

source venv/bin/activate

我想要给这个命令起一个别名,因为我必须一直运行它。所以我把以下内容放在一个名为“load.sh”的文件中:

#!/bin/bash
source venv/bin/activate

然后跑了

chmod +x load.sh

但是,现在当我运行 ./load.sh 时没有任何效果。我的怀疑可能是“来源”这个词有问题。但我不知道。有什么想法吗?谢谢。

答案1

source venv/bin/activate命令会修改load.sh的环境。load.sh结束时,该环境将被遗忘。此外,只有当您在目录中时,它才会起作用$HOME

我认为您真正想要的是添加到您的~/.bashrc

alias venv="source $HOME/venv/bin/activate"

然后

venv

就可以了。

答案2

另一种选择是使用virtualenvwrapper。

pip install virtualenvwrapper您可以使用(用于pip3Python3)安装它。
之后,在文件末尾添加以下几行.bashrc

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.local/bin/virtualenvwrapper.sh
export WORKON_HOME=~/.virtualenvs
export PIP_VIRTUALENV_BASE=~/.virtualenvs
export PIP3_VIRTUALENV_BASE=~/.virtualenvs

保存并退出,然后您必须.bashrc通过运行重新加载source ~/.bashrc(仅一次)。
此后,每当您想要创建环境时,请运行mkvirtualenv <your_env_name>
如果您想在环境上工作或在环境之间切换,请运行workon <env_name>
如果您想停用环境,请运行deactivate

相关内容