Python .env在从CLI运行时未加载,但在从VSCode运行时加载

Python .env在从CLI运行时未加载,但在从VSCode运行时加载,python,python-3.x,Python,Python 3.x,我已经用Python完成了一个应用程序的编写,当从VSCode运行时,它可以正常工作,但是,当试图从终端运行时,它不会启动 我得到的错误是: SQLConnString='Driver={odbcdriver 17 for SQL Server};服务器='+SQLServer+';数据库='+SQLDatabase+';UID='+SQLLogin+';PWD='+SQLPassword TypeError:只能将str(而不是“NoneType”)连接到str 这显然非常清楚,它表明,至少

我已经用Python完成了一个应用程序的编写,当从VSCode运行时,它可以正常工作,但是,当试图从终端运行时,它不会启动

我得到的错误是:

SQLConnString='Driver={odbcdriver 17 for SQL Server};服务器='+SQLServer+';数据库='+SQLDatabase+';UID='+SQLLogin+';PWD='+SQLPassword
TypeError:只能将str(而不是“NoneType”)连接到str
这显然非常清楚,它表明,至少其中一个变量(
SQLServer
SQLDatabase
SQLLogin
SQLPassword
)的值为
None
,因此连接失败。我明白这一点

然而,我不明白的是,这些变量是在之前定义和加载的:

SQLServer=os.getenv('SQL\u SERVER')
SQLDatabase=os.getenv('SQL\u DATABASE')
SQLLogin=os.getenv('SQL\u LOGIN')
SQLPassword=os.getenv('SQL\u PASSWORD')
而且,正如我提到的,如果我在VSCode中运行python文件,那么该文件启动良好,并且可以工作;没有错误。因此,我在VSCode中调试它,并在bash中运行
python3./mypythonfile.py
,这与我有所不同

我在这里遗漏了什么,为什么当我从命令行运行环境文件时,它的值没有被拉入变量中,而是当我从VSCode运行它时。那没有道理。为什么行为不同;一个不起作用,另一个很好

不幸的是,搜索“python3未在cli中加载.env文件”之类的内容会让我找到一些源代码,这些源代码告诉我如何创建/使用
.env
文件;我有一个文件,它可以工作,但似乎不在CLI中,我不明白为什么。显然,我遗漏了一些明显的东西,但当它在VSCode中工作时,我希望它应该在CLI中工作


我也在两种不同的设备上试过,结果是一样的。在VSCode中运行正常,但无法从命令行启动。

找到了答案。我导入其他文件,这些文件也使用环境文件中的数据。在VSCode中,调试时,您不需要在单个文件中加载
load_dotenv()
,但在从python3运行时需要这样做。我假设这是调试器中的一个bug