我对ubuntu上的virtualenvwrapper
有问题。
我在做一个简单的Django项目。我决定将foo
从SECRET_KEY
移到settings.py
并将其保存为环境变量。一切顺利:
在巴什我已经进入
export SECRET_KET=['...']
在
settings.py
中输入:SECRET_KEY = os.environ['SECRET_KEY']
。
但是
在我再次使用bash中的
workon foo
命令开始处理project之后,我尝试使用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'
我读到这个变量应该在
postactivate
的.virtualenvs/foo/bin/
文件中设置,但是那里什么都没有。幸运的是,这只是一个简单的测试项目,但是当使用
virtualenvwrapper
时,如何确保环境变量将保存在下一个virtualenv中? 最佳答案
export
命令标记要与任何新派生的子进程一起导出的环境变量,因此它允许子进程继承所有标记的变量,但不保留它。If you want the variable to be permanently available in your virtual environment you have to add it manually to the postactivate
script:
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/