gpt4 book ai didi

bash - 在 Bash 脚本中激活 virtualenv 不起作用

转载 作者:行者123 更新时间:2023-11-29 09:14:38 24 4
gpt4 key购买 nike

编写脚本来自动化我的 Flask 环境设置。

if [[ -z $1 ]];
then
echo "usage: flaskup <dirname> <template dir>";
exit
else
virtualenv $1 &&
cd ./$1 &&
source bin/activate &&
bin/pip install flask &&
mkdir ./app &&
mkdir ./app/static &&
mkdir ./app/templates &&
exit;
fi

我希望这会将我留在它创建的目录中,并激活虚拟环境,但它会将我留在运行脚本的同一目录中。在激活的虚拟环境中,如何使脚本随 shell 退出?

最佳答案

如果您在它自己的 shell 中运行脚本(如果它位于您的 /path/to/script 中,则以 script$PATH 的形式运行)那么您无法获得想要的结果。运行脚本的 shell 与运行它的 shell 不同,它不能更改父 shell 的状态。您最接近的做法是让脚本将路径作为输出回显并将其作为 cd "$(/path/to/script)" 运行。或类似的。

或者,如果您以 . /path/to/script 运行脚本(或类似的)然后您将使用当前的 shell 运行它,并且它所做的任何目录更改都将在您当前的 shell 而不是子 shell 中发生。

关于bash - 在 Bash 脚本中激活 virtualenv 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25235469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com