gpt4 book ai didi

python - virtualenvwrapper - 环境变量不保存

转载 作者:行者123 更新时间:2023-11-28 20:15:03 28 4
gpt4 key购买 nike

我在 ubuntu 上遇到 virtualenvwrapper 问题。

我正在处理简单的 Django 项目 foo。我决定从 settings.py 中移动 SECRET_KEY 并将其保存为环境变量。一切顺利:

在 bash 中我已经输入了

export SECRET_KET=['...']

settings.py 我输入了:

SECRET_KEY = os.environ['SECRET_KEY']

我还测试了该应用程序正在运行并且一切正常。

但是

在我再次使用 bash 中的 workon foo 命令开始处理项目之后,我尝试使用 python manage.py runserverSECRET_KEY 无效。我得到的错误是:

    ...
SECRET_KEY = os.environ['SECRET_KEY']
File "/home/user/.virtualenvs/foo/lib/python3.6/os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'SECRET_KEY'

我读到这个变量应该在 .virtualenvs/foo/bin/postactivate 文件中设置,但那里什么也没有。

幸运的是,这只是一个简单的测试项目,但我如何确保在使用 virtualenvwrapper 时环境变量将保存在我的下一个 virtualenv 中?

最佳答案

export 命令将环境变量标记为与任何新派生的子进程一起导出,因此它允许子进程继承所有标记的变量但不会保留它。如果您希望该变量在您的虚拟环境中永久可用,您必须手动将其添加到 postactivate 脚本中:

echo 'export SECRET_KET=KJGH768&^jhgJg' >> /home/user/.virtualenvs/foo/bin/postactivate

但是,一旦离开 virtualenv,您还必须取消设置变量以避免任何冲突,如下所示:

echo 'unset SECRET_KET' >> /home/user/.virtualenvs/foo/bin/predeactivate

关于python - virtualenvwrapper - 环境变量不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47925819/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com