首页 > 解决方案 > 如何从 .env 文件成功加载 API 密钥

问题描述

我一直在参考网络上的教程,但即使我完全按照它们进行操作,也会出现问题。

我试图在 .env 文件中隐藏一些 API 密钥,这是我的 .env 的内容(与 init.py 相同的目录):

CONNSTRING = DefaultEndpointsProtocol=samplesamplesameplsamplesample

这是在我的 init.py 里面

from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv())
print(os.getenv("CONNSTRING"))

哪个不起作用?不确定错误,这就是它所说的:

System.Private.CoreLib: Result: Failure  
Exception: ModuleNotFoundError: No module named '__main__'

if usecwd or _is_interactive() or getattr(sys, 'frozen', False):
  File "D:\\\", line 265, in _is_interactive
    main = __import__('__main__', None, None, fromlist=['__file__'])

标签: pythonpython-3.xsyntaxenvironment-variablesdotenv

解决方案


默认情况下,.env应该与您执行的文件处于同一级别。但是您可以指定路径作为load_dotenv方法的参数。也许您应该尝试摆脱该find_dotenv方法并直接给出.env的绝对路径,如下所示:

import os                                                                                                                                                                                                          
from dotenv import load_dotenv, find_dotenv
from pathlib import Path
load_dotenv(Path("/my/path/.env"))
print(os.getenv("CONNSTRING"))

推荐阅读