简体   繁体   English

如何在virtualenv`deactivate`上运行清理脚本?

[英]How can I run a cleanup script on virtualenv `deactivate`?

Via autoenv , whenever I cd into a directory with a .env file, I automatically activate my python virtual environment and set some environment variables. 通过autoenv ,每当我cd到了一个目录.env文件,我会自动激活我的python虚拟环境,并设置一些环境变量。 This .env file by essence is a setup script. 本质上,该.env文件是安装脚本。

# /absolute/path/to/project/.env
source /absolute/path/to/project/.venv/bin/activate

export ENV_VAR_1="foo"
export ENV_VAR_2="bar"

But when I'm done working on my project and I type deactivate 但是当我完成项目工作并输入deactivate

  • I expect these environment variables to vanish. 希望这些环境变量消失。
  • In reality , these environment variables persist. 实际上 ,这些环境变量仍然存在。

Is there a clean way for me to run a teardown script when I call deactivate that does some project clean up when I'm done for the day? 当我调用deactivate ,是否有一种干净的方法可以运行拆卸脚本,当一天完成后,是否会清除某些项目?

Inside the activate script, there is a deactivate block in which you can unset the variables: activate脚本中,有一个deactivate块,您可以在其中取消设置变量:

deactivate () {
    # ...
    unset ENV_VAR_1
    unset ENV_VAR_2
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM