django - VS Code 不使用 pipenv .env 文件
问题描述
在具有 Python 3.7.3 pipenv 虚拟环境的 ubuntu 16.04 上使用 VS Code 1.35.1,我试图在 .env 文件中设置环境变量,但由于某种原因,该文件似乎无法被识别。
有人可以帮助我了解我可以做些什么来让我的(Django)应用程序访问环境变量,而无需手动运行pipenv shell
.
采取的步骤:
所以,这就是我正在做的事情:
1 - 我已经为我的项目设置了 Python 解释器,如下所示:ctrl + shift + p
> Python: Select interpreter
>Python 3.7.3 64-bit ('environment_name': pipenv)
2 - 在项目根目录中创建一个 .env 文件:
# Django
SECRET_KEY="some key here"
DEBUG=True
...
3 - 确保安装并启用了 VS Code Python 扩展
4 - 调整了我的 Django 设置文件以从环境变量中获取 SECRET_KEY:
SECRET_KEY = os.getenv('SECRET_KEY')
5 - 从 VS Code 终端运行 Django 开发服务器(通过激活 pipenv 环境ctrl + shift + ~
):
(environment-name) user@system-name:~/projects/my-project$ python manage.py runserver
6 - 没有更改其他设置
我没有更改任何设置,例如python.envFile
设置。设置保留为默认值。
我怎么知道 .env 文件无法识别:
上述步骤会在 VS Code 终端中产生以下消息:
...
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
如果我pipenv shell
在同一个 VS Code 终端中运行(使用已经激活的环境,并因此再次激活它),并启动 Django dev server: python manage.py runserver
,则服务器完美启动。
解决方案
看起来您的解释器没有使用 pipenv 环境
1) 检查 pipenv --where
2)查看您的 settings.json 文件中是否将您的 pythonPath 变量设置为位置 {pipenv --where}/bin/python{some version}
3)再次运行
推荐阅读
- angular - 如何使用路由出口路由到离子标签?
- azure - 跨订阅迁移 Azure VM
- apache-storm - 如何为在 Heron 中运行的 Storm 拓扑设置组件的资源需求?
- font-awesome - Font Awesome 5 - 自托管 - 最佳和灵活的集成?
- javascript - 函数中的日期参数
- postgresql - 无法使用 Postgres DB 在 QGIS 中加载数据
- ballerina - Ballerina:通过传递参数从表结构中检索记录
- php - CakePHP:隐藏 CRUD 动作(有条件的)
- c# - c# COM 应用程序的 Intellisense 选项
- xamarin - 如何在 C# 中将标签颜色设置为动态资源的颜色?