使用AWS S3存储桶管理Python软件包

时间:2019-05-19 20:16:09

标签: python python-3.x amazon-s3 python-packaging

我想使用Amazon S3存储桶存储python软件包,并在我们项目的任何pip安装中使用它们。到目前为止,我已经能够从Web下载这些软件包,并使用aws s3 cp <source> <destination>将它们存储在Amazon S3存储桶中。

例如:pip download tornado==6.2.0。它已下载了所有依赖项,并已复制到S3存储桶中。这里真正的问题是依赖项是.whltar.gz还是其他格式。

如何从S3存储桶中引用pip install tornado==6.2.0

2 个答案:

答案 0 :(得分:0)

您可以尝试类似

pip install https://s3.<Your-Region-ID>.amazonaws.com/<Your-Bucket-Name>/<Your-Package-Name>.zip

希望有帮助。

答案 1 :(得分:0)

您要的是实现simple python packaging index,又名pyPI。如果您按照PEP所描述的方式配置文件服务器(这就是您将存储桶视为的服务器),则pip之类的工具将自动知道如何从中安装软件包。

但是配置文件服务器是一件令人烦恼的事,无论如何其他人已经做到了。因此,相反,您可以使用pypiserver(它还会发布一个可能用完aws的docker容器),并将其程序包存储库连接到您已设置的s3存储桶(这部分可能有点棘手)

因此,假设pypiserver在您的Intranet中的某个端口上运行,例如3141,您可以使用

从中下载软件包
pip install mypackage --extra-index-url 0.0.0.0:3141 --trusted-host 0.0.0.0