【发布时间】:2012-12-03 07:36:09
【问题描述】:
我想编写一个小脚本来获取我的 virtualenv(用于 Python 项目)目录。当我在我的项目目录中的某个地方时,我知道我的虚拟环境的“venv”目录位于我当前目录的祖先之一的目录中。
我想编写一个 shell 脚本,该脚本将提供 venv/bin/activate,并且它的效果应该在这个 shell 脚本之外持续存在。这不是现在发生的。
这是我的代码:
#!/bin/bash
#set -x
while [ $PWD != "/" ]; do
#echo $PWD
if [ -d "venv" ]; then
echo "venv found in $PWD. Sourcing."
source venv/bin/activate
break
else
cd ..
fi
done
为什么它现在不起作用,我该如何解决?
编辑:
如果有帮助,venv/bin/activate 的内容在这里:http://pastebin.com/TZ40brsq 它由virtualenv 工具生成(一般用于Python 项目)。
【问题讨论】:
-
你的“source”命令有一个相对路径,这意味着它会尝试从执行脚本的目录中找到“venv”目录。
标签: bash virtualenv