2014-08-29 76 views
1

我使用Linux(Ubuntu 14)。我需要一个变量保存到我的virtualenv,所以我写上的virtualenv中使用bash shell启动:在linux上保存virtualenv变量

$ export SECRET_KEY='asdgladfkga....' 

,然后我可以做(使用python):

import os 
key = os.environ["SECRET_KEY"] 

一切正常,直到我重新启动计算机,然后,该变量被删除。我如何真正保存它?我可以在不安装virtualenvwrapper的情况下执行此操作吗?

回答

2

如果要定义的变量SECRET_KEY只有当你激活你的virtualenv中,那么你可以通过添加

export SECRET_KEY='asdgladfkga....' 
+0

没有找到“预激活”的剧本修改您的virtualenv bin目录preactivate脚本,但发现一个名为“激活”。它的工作。谢谢。 – alejoss 2014-08-30 18:26:05

1

这不是真的virtualenv问题。 virtualenv是为了沙盒你的Python环境。运行激活脚本(您source)确实会在操作系统级别更改某些环境变量,但这些脚本不会保存/沙箱化,并且除了在当前运行的shell实例外没有连接到virtualenv本身激活

当你重新启动,你的.bashrc将根据该文件的内容加载庆典环境中备份。

如果你想保留一个“秘密密钥” - 不速之客,我不知道我为什么要这样做;你想达到什么目的? - 你可以有一个包装脚本是:

  1. 具有相同EXPORT命令

通过EXPORT

  • echo S上的键设置在当前shell中的关键文件在你的home目录然后,你可以修改你的.bashrcsource这个文件,如果它存在,所以它会在启动时加载,因此在重新启动后仍然存在。

    的virtualenv包装再次运行,该过程将重复(如果该键没有变化没有改变什么功能,你可以对其进行优化来懒得重新设置变量,也没有写出来,如果文件关键是一样的)。