[英]How should I structure my Python module so that I can run older versions at any time in the future?
我有一个 Python 模块,它为我们业务的特定领域生成预测。 该模块不仅包含我的预测,还包含其他人的预测,这些人作为我的预测的输入,或使用我的预测作为输入。
随着时间的推移,我们对存储库中的代码进行了许多更改。 我希望能够始终运行过去某个日期的代码。 理想情况下,我将能够命名版本或发布并专门运行该文件。 截至目前,我能想到的唯一方法是在我的代码中加入一堆 if 语句。 但这不是最佳实践,因此我在这里问。
我知道我还需要存储截至运行日期的数据输入——我自己可以处理。 我特别想问的是如何存储代码库的版本,以便它们可以轻松运行——最好是在 EC2 集群上并行运行。
回购结构:
parent-folder
- Dockerfile
- forecasting-code
- requirements.txt
- forecast_runner.py
- config.py
- module
- forecasts
- volume_forecast.py
- conversion_forecast.py
- profitability_forecast.py
- models
- price_elasticity.py
- scripts
- load_data.py
- data_inputs
- sql
- csv
- pkl
- auth_files
- google_sheets
- db
可能对您有帮助的一件事是为每个版本标记您的提交。 这样你就有了一个简单的方法来查看哪些提交是真正发布的,哪些之间的小改动可能有效,也可能无效。
一种工作流程是使用 pip。您可以使用 pip 从 git 安装。
pip install git+https://myrep.com/mypath@1.0
或者,您可以从可编辑的路径安装。
pip install -e .
这样,每次签出新标签时都无需重新安装。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.