我已经像往常一样创建了一个新的 Python venv:
我知道,激活 venv 的正常方法是从终端调用
但我需要在我的 bash 脚本中拥有这个功能,该脚本为我的开发提供了许多其他有用的功能。
我试图以简单的方式实现它:
my-script.sh:
python -m venv .venv
我需要创建一个 bash 脚本,可以激活这个 venv 并在完成后保持该状态。我知道,激活 venv 的正常方法是从终端调用
source .venv/bin/activate
或通过别名使用它。但我需要在我的 bash 脚本中拥有这个功能,该脚本为我的开发提供了许多其他有用的功能。
我试图以简单的方式实现它:
my-script.sh:
#!/bin/bash
source ".venv/bin/activate"
echo $VIRTUAL_ENV
当脚本运行时,venv被激活,我通过$VIRTUAL_ENV进行检查。 但是在完成后,状态丢失了:
max@mbp t3 $ ./my-script.sh
/Users/max/t3/.venv
max@mbp t3 $ echo $VIRTUAL_ENV
max@mbp t3 $
在脚本结束后保持已激活的虚拟环境是否可能?
我需要这个功能来运行我的脚本p
,该脚本包含许多用于 Python、pip、twine 等的不同辅助命令。
我想使用我的脚本p
和虚拟环境做这样的事情:
$ p v
1) 如果已经有一个已激活的虚拟环境,则不进行任何操作
2) 如果存在 .venv 文件夹,则激活虚拟环境并返回已激活的虚拟环境 bash 提示符。
3) 如果不存在 .venv 文件夹,则首先创建虚拟环境,然后激活它。同时返回已激活的虚拟环境 bash 提示符。