我正在用 python 编写一个程序,计划将其托管在 github 上。我有一个.env包含 api 令牌的文件。我尝试将其导入到我的代码中,如下所示:
首先,我通过在命令提示符中python-dotenv键入来安装该库。当我输入时显示pip install python-dotenvpython-dotenvpip list。
然后在我的代码中:
import os
from dotenv import load_dotenv
load_dotenv()
example = os.getenv('TOKEN')
Run Code Online (Sandbox Code Playgroud)
from dotenv import load_dotenv给出错误Import "dotenv" could not be resolved Pylancereport (MissingImports),我的代码将无法运行。我做错了什么吗?我该如何修复它?
在 Fast API 文档中建议使用 .env 来加载配置。只是据我所知它只支持字符串。
from fastapi import FastAPI
from pydantic import BaseSettings
class Settings(BaseSettings):
api_tokens = []
class Config:
env_file = ".env"
settings = Settings()
app = FastAPI()
Run Code Online (Sandbox Code Playgroud)
我通常每隔几个月更改一次 API 令牌,将新的令牌添加到列表中,并在一段时间后删除旧的令牌。这为用户提供了足够的时间升级到最新版本而不会造成任何中断。同时,两个 API 令牌都将在一段时间内有效。
但我无法在文件中定义列表.env。
API_TOKENS = abc123,abc321
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
更新:
这实际上是可能的。下面的答案是正确的,但是我仍然必须像这样更改类型:
class Settings(BaseSettings):
api_tokens: list
Run Code Online (Sandbox Code Playgroud) 我花了最近几天的时间试图找出我做错了什么,但我仍然无法弄清楚,因为我能够flask run使用docker-compose up --build. 源代码在这里
我的问题是我的 Cloud Run 部署成功,但单击URL时服务不可用。我检查了日志,似乎我的环境变量没有正确加载:
line 7, in <module> from web_messaging.blueprints.user import user File
"/web_messaging/web_messaging/blueprints/user/__init__.py", line 1, in <module> from
web_messaging.blueprints.user.views import user File
"/web_messaging/web_messaging/blueprints/user/views.py", line 3, in <module> from
web_messaging.extensions import mongo, login_manager, c, bc File
"/web_messaging/web_messaging/extensions.py", line 18, in <module> twilio_client = Client(TWILIO_SID,
TWILIO_TOKEN) File "/usr/local/lib/python3.9/site-packages/twilio/rest/__init__.py", line 54, in __init__
raise TwilioException("Credentials are required to create a TwilioClient")
twilio.base.exceptions.TwilioException: Credentials are required to create a TwilioClient
Run Code Online (Sandbox Code Playgroud)
我有一个config/.env …
我正在尝试在 python 中使用 pip 安装几个模块,特别是 dotenv但出现错误
\n我已尝试更新 pip 版本并更新 setuptool 但问题仍然存在。
\n我尝试使用 pip 安装dotenv,它显示安装消息几分钟,然后显示错误而不是安装它。这是我收到的错误的几行
\nerror: subprocess-exited-with-error\n\n \xc3\x97 python setup.py egg_info did not run successfully.\n \xe2\x94\x82 exit code: 1\n \xe2\x95\xb0\xe2\x94\x80> [67 lines of output] \nRun Code Online (Sandbox Code Playgroud)\nTraceback (most recent call last):\n File "C:\\users\\rajj\\appdata\\local\\programs\\python\\python38-32\\lib\\site-packages\\setuptools\\installer.py", line 82, in fetch_build_egg\n subprocess.check_call(cmd)\n File "C:\\users\\rajj\\appdata\\local\\programs\\python\\python38-32\\lib\\subprocess.py", line 364, in check_call\n raise CalledProcessError(retcode, cmd)\n subprocess.CalledProcessError: Command '['C:\\\\users\\\\rajj\\\\appdata\\\\local\\\\programs\\\\python\\\\python38-32\\\\python.exe', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', 'C:\\\\Users\\\\Public\\\\Documents\\\\Wondershare\\\\CreatorTemp\\\\tmpz17tfqwd', '--quiet', 'distribute']' returned non-zero exit status 1.\n …Run Code Online (Sandbox Code Playgroud)