我的主目录中有一个python virtualenv文件夹,其中有许多python虚拟环境,我想创建一个运行以下命令的脚本:
$ source ~/Envs/env_that_i_specify_with_args/bin/activate.
使用if-else可以工作,但是我想要一些在~/Envs/
目录中查找的东西,这样当我添加新的环境时,我就不必手动编辑脚本,但我可以使用参数在另一个目录中执行该命令。(类似于$ activateEnv -1
,在我~/Envs/ directory, $ activateEnv -2
的第一个文件夹中运行该命令,在第二个文件夹中运行该命令,等等)
你不能让bash脚本这样做。 原因很简单。 bash脚本在子进程中执行,该子进程的virtualenv将被更改,然后bash脚本结束,您返回到父进程并恢复与以前完全相同的环境
换句话说: 子进程永远不能更改父进程的环境
你能做的是:
source <script_name>
调用它例如,您可以将以下行添加到
~/.bashrc
或~/.bash_aliases
(如果它由~/.bashrc
调用)例如,如果你跟在维尼后面
然后只需键入
setvenv venvthree
即可激活你问过激活第一个,第二个或第三个venv谁会是第一个?按字母顺序排列的第一个?按创建时间排序的第一个? 我认为使用目录名(
venvone
,venvtwo
,venvthree
)可能会更直观,特别是如果你给你的venv起了一个有意义的短名称相关问题 更多 >
编程相关推荐