virtualenvwrapper挂钩不会自动加载

时间:2015-06-25 14:16:37

标签: python hook virtualenv virtualenvwrapper

(遵循Marina Mele的任务炸弹Django教程)

virtualenv被称为tb_test。在$ VIRTUAL_ENV / bin /(〜/ .virtualenvs / tb_test)中,我从$ WORKON_HOME中的常规hooks文件夹粘贴了postactivate文件并添加了2行,所以现在它看起来像这样:

$ VIRTUAL_ENV / bin中/ postactivate     #!/ bin中/ zsh的     #这个钩子是在每个virtualenv被激活后获得的。

echo "hELo"
export DJANGO_SETTINGS_MODULE="taskbuster.settings.testing"

然而,在运行workon tb_test时,virtualenv被激活,除了postactivate挂钩之外的所有内容都没有被加载。没有“heLo”回声: - (

2 个答案:

答案 0 :(得分:1)

适合我。仔细检查您是否正在使用workon来激活virtualenv(而非source bin/activate),并且您确实正在激活正确的virtualenv。

如果仍然无效,请提供有关您的环境的更多信息(操作系统,相关软件包的版本等)。你有没有修改任何其他virtualenv-wrapper钩子?

更新: 也许你在错误的路径中创建了钩子?如果您使用mkvirtualenv创建virtualenv,它应该在适当的位置为您创建postactivate文件,因此您只需编辑它。它应该在这个位置:

~/.virtualenvs/tb_test/bin/postactivate

澄清:~/.virtualenvs/tb_test/postactivate

答案 1 :(得分:0)

我知道这个问题发布已经有一段时间了,但是现在Mac OS Catalina在更多设备中使用,ZSH作为默认外壳。

嗯,我遇到了同样的问题,无法激活环境变量。

按照这里的提示进行的工作是什么:VirtualEnvWrapper Tips

在其中,提示之一建议在执行rehash之后添加echo $variables命令。并做到了。

以下是我的postactivatepreactivate文件,以防万一:

### ~/.virtualenvs/MY_ENV/bin/post(pre)activate ###  
echo 'export DJANGO_SETTINGS_MODULE=MY_SETTINGS' >> ~/.zshenv
echo 'export SECRET_KEY=MY_SECRET' >> ~/.zshenv
echo rehash

postdeactivate和或predeactivate相同

我花了一些时间找到这个提示,因此希望这对另一个无助的开发人员有所帮助。