我使用virtualenvwrapper来管理我的环境。我使用-a <path-to-project>
参数创建项目并且未设置PROJECT_HOME
,因为我的项目不共享共同路径。 VIRTUALENVWRAPPER_WORKON_CD
设置为1
,虚拟环境中存在有效的.project
文件。
当我使用workon
命令时,它只将工作目录更改为项目路径有时,而在其他时候,目录保持不变,尽管环境是正确激活。
那么目录何时以及如何通过workon
发生变化?我有什么必须做的事情/设置让它发挥作用吗?
答案 0 :(得分:2)
我有一个小解决方案,虽然有点hacky
$VIRTUALENVWRAPPER_HOOK_DIR
指向的文件夹。您可能需要在虚拟环境中查看该变量,但通常它与$WORKON_HOME
具有相同的值postactivate
cdproject
现在这样做是每次键入workon <project_name>
时,此脚本将在激活虚拟环境后运行,而您正在使用的目录将切换到该项目的目录。
有关更多生命周期的挂钩,请参阅here!
注意强>
我没有对此进行全面测试,无论项目是如何创建的,都确保无效,但为了确保其有效,我建议使用mkvirtualenv -a <env_name>
创建虚拟环境,或者环境是否存在并激活环境,转到它的项目文件夹并运行setvirtualenvproject
。现在下次尝试执行workon ...
时,脚本将启动并转到项目文件夹< / p>
由于这是一个shell脚本,你可以做一些奇特的调整而不仅仅是那一行。例如,如果激活的项目具有某种模式或某组项目的一部分,您可能只想执行某些操作。查看一些$VIRTUALENVWRAPPER_*
变量以查看您可以获得的其他有用信息
答案 1 :(得分:1)
setvirtualenvproject现在称为setprojectdir
。要使用当前目录,请写setprojectdir .