我正在构建各种基于 python 的项目,这些项目使用 pip/buildout 来安装依赖项。但我不喜欢有人删除 github 项目并破坏我的应用程序,或者网络中断意味着我无法执行部署的想法。
其他人如何解决这个问题?
我有各种各样的想法,但我认为听起来最有前途的想法可能是某种缓存代理服务器。我会让 pip 使用这个内部代理服务器,它会缓存下载项目的副本,并在提供缓存版本之前定期检查更新(如果有网络连接)。
类似的东西已经存在了吗?
用例:
我有一个部署到 Web 服务器 1 的项目。我添加了具有远程依赖关系的新功能,当我更新到生产 Web 服务器时,PyPi 已关闭,因此我无法部署。或者,也许当我开始设置一个新的 Web 服务器时,一个依赖项已经从 github 或任何地方消失了。
无论更广阔的世界发生什么,我怎样才能使我的部署/开发环境始终可以启动?
此外,当我部署时,我不会部署在现有代码之上。相反,我将构建一个新的 virtualenv 并切换到它,以便在出现任何问题时可以回滚。因此,每次部署时,我都需要重建我的环境,并且需要存在依赖项。
因此,我正在寻找一种解决方案,它可以使我免受托管依赖项的服务器的短期网络中断的影响,并防止项目被删除。