Python VirtualNVRapper更改cd行为并使用mkproject
我试图通过下面的说明,使用VirtualNVRapper更改cd的默认行为: 并将代码放在my.virtualenvs文件夹中以及postactivate和postdeactivate文件中 激活后:Python VirtualNVRapper更改cd行为并使用mkproject,python,bash,virtualenv,virtualenvwrapper,Python,Bash,Virtualenv,Virtualenvwrapper,我试图通过下面的说明,使用VirtualNVRapper更改cd的默认行为: 并将代码放在my.virtualenvs文件夹中以及postactivate和postdeactivate文件中 激活后: #!/bin/bash # This hook is sourced after every virtualenv is activated. cd () { if (( $# == 0 )) then builtin cd $VIRTUAL_ENV el
#!/bin/bash
# This hook is sourced after every virtualenv is activated.
cd () {
if (( $# == 0 ))
then
builtin cd $VIRTUAL_ENV
else
builtin cd "$@"
fi
}
cd
后停用:
#!/bin/bash
# This hook is sourced after every virtualenv is deactivated.
cd () {
builtin cd "$@"
}
但是,它似乎工作不正常,现在当我使用workon project
时,它不会自动cd到.project文件中列出的项目文件夹中(可以使用mkproject
命令创建)
(请注意,如果相关的话,我使用的是zshell和prezto)您发布的菜谱不应该做您期望的事情。它实际上做的是,每当您在终端中键入
cd
而没有任何路径时,它会导航到virtualenv根目录,而不是主文件夹
我建议您设置VirtualNVRapper项目,这样您就可以将您的代码库与virtualenv分开(使用需求文件代替可移植性!),即添加到shell文件中
PROJECT_HOME='path/to/your/projects/folder'
这样mkproject
将为您创建一个path/to/your/projects/folder/[PROJECT\u NAME]
文件夹,并且workon
将自动cd插入其中
但是,如果您不想使用项目,您应该像这样更改激活后脚本,以实现您想要的:
cd $VIRTUAL_ENV
你发布的菜谱不应该达到你期望的效果。它实际上的作用是,每当你在终端中键入
cd
而没有任何路径时,它就会导航到virtualenv根目录,而不是主文件夹
我建议您设置VirtualNVRapper项目,这样您就可以将您的代码库与virtualenv分开(使用需求文件代替可移植性!),即添加到shell文件中
PROJECT_HOME='path/to/your/projects/folder'
这样mkproject
将为您创建一个path/to/your/projects/folder/[PROJECT\u NAME]
文件夹,并且workon
将自动cd插入其中
但是,如果您不想使用项目,您应该像这样更改激活后脚本,以实现您想要的:
cd $VIRTUAL_ENV