.env 变量字符串仅在“=”符号之前

.env variable string only goes until "=" sign

提问人:DoubleOj 提问时间:10/26/2023 最后编辑:Charles DuffyDoubleOj 更新时间:10/26/2023 访问量:44

问:

我正在尝试连接到 SQL 数据库,并且我有一个 .env 变量,其中包含所有必要的信息(驱动程序、服务器、数据库、用户 ID、密码),但是当我使用此变量时,连接不起作用,当我打印字符串时,我只在我期望的时候得到,当我只是定期使用字符串时 - 而不是作为环境变量 - 它工作正常。 我试图在 env 文件中创建一个具有相同值的新变量并且有效,但是当我重新启动 vs 代码时,它与原始变量做了同样的事情,我尝试了双引号,单引号只打印“驱动程序”。 我还尝试了一个单独的变量,其中也有一个“=”符号,它也在“=”符号处被切断了 我也在使用 load_dotenv()"driver""driver={ODBC Driver 17 for SQL Server};SERVER={server name her};DATABASE={database name here};UID={user ID here};PWD{password here}"

下面是使用 env 变量的代码:

connection_string = os.getenv("DB_CONNECTION_STRING")
print(connection_string)
connection = pyodbc.connect(connection_string)

我在 Windows 10 上使用 vs code

尝试了新的变量、不同的字符串和不同的引号,所有这些都导致了一个被截断的字符串

python .env

评论

0赞 Charles Duffy 10/26/2023
我会首先研究这是否是您正在使用的“load-dotenv”中的错误(您没有提供链接,所以现在只有您确切知道您从哪里得到它/它是什么版本/等等)。该行为是人们所期望的,如果它使用而不是 .请注意,我们支持 Python 本身以及问题中包含的代码,但我们不能支持不属于问题或其标记的随机第三方库。split('=')split('=', 1)
0赞 Charles Duffy 10/26/2023
无论如何 -- 如果你不想深入研究 load-dotenv,你是否考虑过不使用它,并直接在 VS Code 中指定你的环境变量,或在命令提示符下,或通过你帐户的操作系统设置,或者通过某种尝试使用文件的机制?.env
0赞 DoubleOj 10/26/2023
load_dotenv来自这里的 dotenv 库,我尝试不使用它,但我仍然有同样的问题
0赞 Charles Duffy 10/26/2023
这更令人惊讶。您能否提供一个最小的可重现示例,其他人可以运行以查看相同的问题?
1赞 Charles Duffy 10/26/2023
参见 replit.com/@CharlesDuffy2/...,作为尝试复制的例子,显然,它实际上并没有表现出手头的问题。为了解决这个问题,我们需要知道如何创建确实产生问题的东西。

答: 暂无答案