mar*_*rze 2 python django virtualenv virtualenvwrapper python-3.x
我virtualenvwrapper在ubuntu上有问题.
我正在研究简单的Django项目foo.我决定SECRET_KEY从settings.py环境变量中移除并保存它.一切顺利:
在bash我进入了
export SECRET_KET=['...']
Run Code Online (Sandbox Code Playgroud)
在settings.py我输入:
SECRET_KEY = os.environ['SECRET_KEY']
Run Code Online (Sandbox Code Playgroud)
此外,我测试了该应用程序正在运行,一切正常.
但
在我再次使用workon foobash中的命令开始处理项目后,我试图简单地运行服务器python manage.py runserver并且SECRET_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'
Run Code Online (Sandbox Code Playgroud)
我已经读过这个变量应该在postactivate文件中设置.virtualenvs/foo/bin/,但那里什么都没有.
幸运的是,这只是一个简单的测试项目,但是如何在使用时确保环境变量将保存在我的下一个virtualenv中virtualenvwrapper?
该export命令标记要与任何新分叉的子进程一起导出的环境变量,因此它允许子进程继承所有标记的变量但不保留它.如果您希望变量在虚拟环境中永久可用,则必须手动将其添加到postactivate脚本中:
echo 'export SECRET_KET=KJGH768&^jhgJg' >> /home/user/.virtualenvs/foo/bin/postactivate
Run Code Online (Sandbox Code Playgroud)
但是,一旦离开virtualenv,你必须取消设置变量以避免任何冲突,如下所示:
echo 'unset SECRET_KET' >> /home/user/.virtualenvs/foo/bin/predeactivate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |