python - 从另一个 python 脚本调用 settings.py
问题描述
我有 .env 文件,我在其中添加了环境设置。我编写了“settings.py”,它读取 .env 文件并存储设置值。我想从 other_script.py 导入 settings.py。但我得到 None 作为价值。
我试图执行“settings.py”并返回一个值。另一方面,当我执行导入设置的 other_script 时,这些值变为 None 值。
设置.py:
import os
from dotenv import load_dotenv
from pathlib import Path
env_path = Path('.') / '.env'
load_dotenv(env_path)
MONGO_IP = os.getenv("MONGO_IP")
MONGO_PORT = os.getenv("MONGO_PORT")
MONGO_DB = os.getenv("MONGO_DB")
print(MONGO_DB)
其他脚本.py:
from pymongo import MongoClient
from settings import MONGO_IP, MONGO_PORT, MONGO_DB
print(MONGO_DB)
mongo_client = MongoClient(MONGO_IP, MONGO_PORT)[MONGO_DB]
所以当我执行 other_script.py 时,键应该返回一个值。我想念什么?
解决方案
要检查的两件事是:
settings.py
并且other_script.py
在同一个文件夹中。没有这个,other_script.py
将无法找到settings.py
。看看你的
env
,看看是否load_dotenv(env_path)
工作正常。如果 env 值MONGO_*
设置不正确,您将无法读取它们。
推荐阅读
- python - 如何在 3d matplotlib 图中绘制图像而不是点?
- android - 键盘出现时 EditText 被隐藏
- c# - 如果 TextBox 为空或已经为 0,如何禁止用户在 TextBox 上插入 0?
- oracle - IN , NOT IN 用于 oracle 中的空值
- javascript - 并行文件上传 XMLHttpRequest 请求以及为什么它们不起作用
- tfs - VSTS 任务失败,无法获取本地颁发者证书
- android - Espresso RecyclerView scrollTo 抛出 AppNotIdleException
- android - 在公共市场上找不到商店 ID android facebook 错误
- java - json序列化器中的bean注入
- javascript - NGRX 状态属性消失