2014-08-29 50 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包裝再次運行,該過程將重複(如果該鍵沒有變化沒有改變什麼功能,你可以對其進行優化來懶得重新設置變量,也沒有寫出來,如果文件關鍵是一樣的)。