运行 django 应用程序中的 .env 文件在启动时带有 python-dotenv shell
Run .env file in django app with python-dotenv when starting shell
当 运行 宁 ./manage.py shell
.
时,我正在尝试使用 python-dotenv 到 运行 .env
文件
但是当我开始 shell 时 .env
不是 运行。与正常情况没有什么不同。
我做了什么:
- 在我的虚拟环境中
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 自述文件声明您可以在 .env
文件中使用 export
,但包会忽略它。这样就可以通过从 shell.
调用 source .env
来设置环境变量
但是,您不能 运行 shell 以这种方式编写脚本。当我尝试加载您的示例时,我收到了这条消息:
Python-dotenv could not parse statement starting at line 2
True
删除 echo
行后,我只收到 True
作为响应,PYTHONSTARTUP
已设置。
然而,还有另一个问题,因为您在 PYTHONSTARTUP
的值中也依赖于 shell 脚本。它设置为
'PYTHONSTARTUP': '`pwd`/.pythonrc.py'
出乎您的意料。这应该有效:
export PYTHONSTARTUP2=${PWD}/.pythonrc.py
当 运行 宁 ./manage.py shell
.
.env
文件
但是当我开始 shell 时 .env
不是 运行。与正常情况没有什么不同。
我做了什么:
- 在我的虚拟环境中
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 自述文件声明您可以在 .env
文件中使用 export
,但包会忽略它。这样就可以通过从 shell.
source .env
来设置环境变量
但是,您不能 运行 shell 以这种方式编写脚本。当我尝试加载您的示例时,我收到了这条消息:
Python-dotenv could not parse statement starting at line 2
True
删除 echo
行后,我只收到 True
作为响应,PYTHONSTARTUP
已设置。
然而,还有另一个问题,因为您在 PYTHONSTARTUP
的值中也依赖于 shell 脚本。它设置为
'PYTHONSTARTUP': '`pwd`/.pythonrc.py'
出乎您的意料。这应该有效:
export PYTHONSTARTUP2=${PWD}/.pythonrc.py