我有一个存储库,其中包含一些连接到各种API(Google Analytics,Amazon等)的Python脚本(ETL作业)。在将此repo部署到VPS实例时,我正在使用虚拟环境来跟踪依赖关系。我还有一个CONFIG.py
文件,其中包含各种API密钥,数据库凭据等(我不受版本控制)。
就在最近,我需要连接到Google DFP API。安装googleads
库(使用pip)时会有known bug,它会安装oauth2client
库的较新版本,这会破坏我的Google AnalyticsAPI脚本,因为{{1} }}使用旧版google-api-python-client
。
因此,为了克服这个障碍,我正在考虑在我的仓库中创建一个名为oauth2client
的子目录,并创建一个使用较新版本Google_DFP
的新虚拟环境。这是我的回购的新结构:
oauth2client
在我的/ETL_Scripts
CONFIG.py
google_analytics.py
google_search_console.py
amazon_affiliate.py
/venv
/Google_DFP
google_dfp.py
/venv2
文件中,我使用它来导入凭据google_analytics.py
,然后使用该对象连接到我的数据库(用户名,密码等)。
我的问题是:如何从from CONFIG import DB_CREDENTIALS
文件中的CONFIG.py
文件(在父目录中)导入变量?当我尝试导出变量时google_dfp.py
- CONFIG.py
- 我收到此错误:from ..CONFIG import DB_CREDENTIALS
。
以下是我的ValueError: Attempted relative import in non-package
文件的样子:
CONFIG.py