VirtualEnv从bash脚本开始

时间:2011-08-03 15:27:56

标签: python bash virtualenv

我正在尝试编写一个超级简单的bash脚本。基本上激活虚拟环境而不是更改到工作目录。我做了很多任务,并且只对一个命令做出了贡献。

基本上......

#!/bin/bash
source /usr/local/turbogears/pps_beta/bin/activate
cd /usr/local/turbogears/pps_beta/src

然而,当它运行时,它只是转储回shell,我仍然在目录中运行脚本,并且环境未激活。

4 个答案:

答案 0 :(得分:21)

您需要做的就是使用source命令运行脚本。这是因为cd命令是运行它的shell的本地命令。直接运行脚本时,将执行一个新的shell,当它到达脚本的文件末尾时终止。通过使用source命令,您可以告诉shell直接执行脚本的指令。

答案 1 :(得分:1)

cd的值是当前脚本的本地值,当您从文件末尾掉落时结束。

你要做的不是“超级简单”,因为你想要覆盖这种行为。

查看exec,用您选择的流程替换当前流程。

要将命令输入交互式Bash,请查看--rcfile选项。

答案 2 :(得分:1)

我想你希望你的脚本是动态的,但是,作为一个新系统的快速修复,我创建了一个别名。

  

开始即

     

env被称为'py1',位于〜/ envs / py1 /,带有一个存储库   位于〜/ proj / py1 /

     

alias py1 ='source~ / envs / py1 / bin / activate; cd~ / proj / py1 /;

     

结束即

您现在可以通过在CLI中的任何位置键入py1来访问您的项目和virtualenv。

我知道这不是理想的地方,违反DRY和许多其他编程概念。这只是一种快速而又脏的方式,可以快速访问您的环境和项目,而无需设置变量。

答案 3 :(得分:0)

我知道我在这里比赛迟到了,但我可以建议使用virtualenvwrapper吗?它提供了一个很好的bash钩子,似乎完全符合你的要求。

查看本教程:http://blog.fruiapps.com/2012/06/An-introductory-tutorial-to-python-virtualenv-and-virtualenvwrapper