[英]Enviroment variables in pyenv-virtualenv
我已經使用pyenv virtualenv 3.5.9 projectname
創建了一個用於開發 django 項目的虛擬環境。
如何為我的代碼設置環境變量以供使用?
我嘗試在/Users/developer/.pyenv/versions/projectname/bin/activate
添加環境變量 DATABASE_USER ,如下所示:
export DATABASE_USER="dbuser"
當我嘗試echo $DATABASE_USER
,會打印一個空字符串。
嘗試安裝zsh-autoenv
現在我可以echo $DATABASE_USER
並獲取 .autoenv.zsh 文件中設置的值。
但我似乎無法讓環境變量對我的 Django 代碼可用:
如果我嘗試在 virtualenv 內的 python shell 中os.getenv('DATABASE_USER', '')
,我得到''
可能有什么問題? zsh-autoenv 變量是否僅適用於 zsh shell 而不是python manage.py shell
?
我想知道類似的事情,我偶然發現了一個reddit 帖子,那里有人問了同樣的問題,並最終跟進了一些有趣的發現。
正如您所注意到的, pyenv
似乎並沒有真正使用bin/activate
文件。 他們沒有說激活方法是什么,但和你一樣,在那里添加環境變量沒有結果。
最后,他們最終安裝了autoenv ,它自稱為基於目錄的環境。 它允許您在您的目錄中創建一個 .env 文件,當您cd
到該目錄時,它會運行 .env 文件。 您可以將它用於環境變量,也可以向其中添加任何其他內容。
我在 autoenv 頁面上注意到他們說您可能應該改用direnv ,因為它具有更好的功能並且是更高質量的軟件。 這些都不是 Python 或 pyenv 特定的,如果您從目錄外部調用 Python 代碼,它們可能無法工作。 由於您使用的是 pyenv,因此無論如何您都可能在目錄中運行您的代碼,因此我認為任何一個都可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.