擅长:python、mysql、java
<p>谢谢你的新鲜眼睛。原来问题是用dotenv在环境变量中加载的。我的模块在Python包(单独的文件夹)中,脚本和.env文件在工作目录中。在</p>
<p>dotenv成功地读取环境变量(.env在我的工作目录中),当我在我的原始post中,逐行,在解释器或Jupyter中运行代码时。但是,当我在脚本中运行相同的代码时,在我的工作目录中的.env文件中找不到它。那将是一个单独的问题,我必须找到答案。在</p>
<pre><code>import teradatasql
import pandas as pd
def run_query(query, db_host, db_username, db_password):
"""Run query string on teradata and return DataFrame."""
if query.strip()[-1] != ';':
query += ';'
with teradatasql.connect(host=db_host, user=db_username,
password=db_password) as connect:
df = pd.read_sql(query, connect)
return df
</code></pre>
<p>下面的代码现在可以在脚本中正常运行:</p>
^{pr2}$