我有一个小解决方案,虽然有点 hacky
- 转到此变量
$VIRTUALENVWRAPPER_HOOK_DIR
指向的文件夹。您可能需要在虚拟环境中才能看到该变量,但通常它的值与$WORKON_HOME
- 在此文件夹中,您应该看到一个名为
postactivate
- 将此添加为脚本的最后一行:
cdproject
现在这样做是每次你输入workon <project_name>
,这个脚本会在虚拟环境被激活后运行,你工作的目录会切换到那个项目的目录。
有关更多生命周期挂钩,请参见此处!
笔记
无论项目是如何创建的,我都没有对此进行全面测试以确保它可以正常工作,但为了确保它可以正常工作,我建议创建虚拟环境,mkvirtualenv -a <env_name>
或者如果环境存在并且环境已激活,请转到它的项目文件夹并运行setvirtualenvproject
。现在下次您尝试执行此操作workon ...
时,该脚本将启动并带您进入您的项目文件夹。
附录
因为这是一个 shell 脚本,你可以做一些花哨的调整,而不仅仅是那一行。例如,您可能只想在激活的项目具有特定模式或特定项目组的一部分时才执行某些操作。检查一些$VIRTUALENVWRAPPER_*
变量以查看您可以获得哪些其他有用信息