擅长:python、mysql、java
<p>结果发现我的代码有很多问题,我将在这里简要列出,以防其他人遇到同样的问题。在</p>
<h2>第一个问题</h2>
<p>作为一个相当新的人,我不太清楚我安装的python生态系统是如何连接在一起的。我已经安装了Anaconda和Spyder作为我的开发环境。不过,我一直在跟踪一个使用pip作为虚拟环境安装程序的Flask教程。我使用的命令提示符是Anaconda附带的。在我得到dotenv问题之前,一切似乎都在某种程度上正常工作,这实际上是整个相当大的教程中的一个小细节。在</p>
<p>为了修复dotenv,我尝试用pip进行各种安装/卸载,我可以看到dotenv<em>已经安装了</em>!那没用。所做的工作是在命令提示符下使用conda安装dotenv,但我必须明确指出从何处获取dotenv。有效的命令是</p>
<p><code>conda install -c conda-forge python-dotenv</code></p>
<h2>第二个问题</h2>
<p>一旦我安装了dotenv,我就无法从<code>.env</code>文件中设置环境变量。本教程使用<code>os.path.dirname(__file__)</code>获取当前工作目录。结果发现<code>__file__</code>总是小写,但我的目录中有一些大写。因此找不到<code>.env</code>文件的绝对路径!我通过使用内置的pathlib模块修复了这个问题,该模块考虑大小写。这里有一些代码。在</p>
<pre><code>import os
from pathlib import Path
from dotenv import load_dotenv
# Get the base directory
basepath = Path()
basedir = str(basepath.cwd())
# Load the environment variables
envars = basepath.cwd() / '.env'
load_dotenv(envars)
# Read an environment variable.
SECRET_KEY = os.getenv('SECRET_KEY')
</code></pre>