python - 启动 shell 时使用 python-dotenv 在 django 应用程序中运行 .env 文件
问题描述
我正在尝试使用python-dotenv在运行.env
时运行文件./manage.py shell
。
但是.env
当我启动 shell 时没有运行。没有什么与正常不同的事情发生。
我做了什么:
- 安装
python-dotenv
在pip install python-dotenv
我的虚拟环境中 .env
在与我的项目相同的目录中添加了一个文件settings.py
下面还添加到settings.py
:
from dotenv import load_dotenv
load_dotenv()
对于上下文,我.env
看起来像:
export PYTHONSTARTUP=`pwd`/.pythonrc.py
echo "environment variables set"
我正在导出.pythonrc.py
,所以我可以在加载 shell 时进行一些导入。
我对 Django 很陌生。我错过了一些明显的东西吗?
解决方案
问题是您将 env 文件视为 shell 文件。
python-dotenv 自述文件指出你可以export
在你的.env
文件中使用,它会被包忽略。这样可以通过source .env
从 shell 调用来设置环境变量。
但是,您不能以这种方式运行 shell 脚本。当我尝试加载您的示例时,我收到了以下消息:
Python-dotenv could not parse statement starting at line 2
True
删除echo
线路后,我得到True
了回应PYTHONSTARTUP
并被设置。
但是,还有另一个问题,因为您也依赖于 shell 脚本的值PYTHONSTARTUP
。它设置为
'PYTHONSTARTUP': '`pwd`/.pythonrc.py'
不是你所期望的。这应该有效:
export PYTHONSTARTUP2=${PWD}/.pythonrc.py
推荐阅读
- android - AccountManager.newChooseAccountIntent 不要求创建帐户
- php - 带有参数 $1 和 $2 的 .htaccess 重定向以形成 URL
- http - 即使禁用缓存,Safari 也会缓存 GET 请求
- javascript - 将base64字符串转换为字节数组
- solr - 如何仅获取索引数据作为响应?
- postgresql - 在 dbeaver 中执行批处理和执行一堆语句有什么区别
- c# - WPF 拼写检查富文本框重试
- java - Spring JdbcTemplate 的可迭代结果
- android - 从服务器获取主题颜色并在整个android应用程序中更改它的好方法是什么?
- java - for循环内if条件的Junit测试用例