python的virtualenv设置_python - 在virtualenv中设置环境变量

如果您正在使用virtualenvwrapper(我强烈建议这样做),您可以使用$VIRTUAL_ENV/bin/predeactivate中具有相同名称的脚本定义不同的挂钩(preactivate,postactivate,predeactivate,postdeactivate)。您需要postactivate挂钩。

$ workon myvenv

$ cat $VIRTUAL_ENV/bin/postactivate

#!/bin/bash

# This hook is run after this virtualenv is activated.

export DJANGO_DEBUG=True

export S3_KEY=mykey

export S3_SECRET=mysecret

$ echo $DJANGO_DEBUG

True

如果要将此配置保留在项目目录中,只需将项目目录中的符号链接创建为$VIRTUAL_ENV/bin/predeactivate。

$ rm $VIRTUAL_ENV/bin/postactivate

$ ln -s .env/postactivate $VIRTUAL_ENV/bin/postactivate

每次使用mkvirtualenv时,您甚至可以自动创建符号链接。

在停用时清理

请记住,这不会自行清理。 停用virtualenv时,环境变量将保持不变。 要对称清理,您可以添加到$VIRTUAL_ENV/bin/predeactivate。

$ cat $VIRTUAL_ENV/bin/predeactivate

#!/bin/bash

# This hook is run before this virtualenv is deactivated.

unset DJANGO_DEBUG

$ deactivate

$ echo $DJANGO_DEBUG

请记住,如果将此用于可能已在您的环境中设置的环境变量,那么取消设置将导致它们在离开virtualenv时完全取消设置。 因此,如果完全可能,您可以在某处临时记录先前的值,然后在停用时将其读回。

建立:

$ cat $VIRTUAL_ENV/bin/postactivate

#!/bin/bash

# This hook is run after this virtualenv is activated.

if [[ -n $SOME_VAR ]]

then

export SOME_VAR_BACKUP=$SOME_VAR

fi

export SOME_VAR=apple

$ cat $VIRTUAL_ENV/bin/predeactivate

#!/bin/bash

# This hook is run before this virtualenv is deactivated.

if [[ -n $SOME_VAR_BACKUP ]]

then

export SOME_VAR=$SOME_VAR_BACKUP

unset SOME_VAR_BACKUP

else

unset SOME_VAR

fi

测试:

$ echo $SOME_VAR

banana

$ workon myenv

$ echo $SOME_VAR

apple

$ deactivate

$ echo $SOME_VAR

banana

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值