我想使用Amazon S3存储桶存储python软件包,并在我们项目的任何pip
安装中使用它们。到目前为止,我已经能够从Web下载这些软件包,并使用aws s3 cp <source> <destination>
将它们存储在Amazon S3存储桶中。
例如:pip download tornado==6.2.0
。它已下载了所有依赖项,并已复制到S3存储桶中。这里真正的问题是依赖项是.whl
或tar.gz
还是其他格式。
如何从S3存储桶中引用pip install tornado==6.2.0
?
答案 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