簡體   English   中英

pyenv-virtualenv 中的環境變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM