1

我有 .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 时,键应该返回一个值。我想念什么?

4

2 回答 2

0

要检查的两件事是:

  1. settings.py并且other_script.py在同一个文件夹中。没有这个,other_script.py将无法找到settings.py

  2. 看看你的env,看看是否load_dotenv(env_path)工作正常。如果 env 值MONGO_*设置不正确,您将无法读取它们。

于 2019-04-24T16:12:19.863 回答
0

如果它们不在同一个文件夹中,则问题可能是您__init__.py要从中导入的文件夹中没有文件,因为需要将其作为一个包。初始化文件可以为空。

于 2020-03-22T20:32:51.517 回答