Управление пакетами Python с помощью AWS S3 Bucket - PullRequest
0 голосов
/ 19 мая 2019

Я бы хотел использовать корзину Amazon S3 для хранения пакетов Python и использовать их в любой установке pip в нашем проекте.На данный момент я могу загрузить эти пакеты из Интернета и сохранить их в корзине Amazon S3, используя aws s3 cp <source> <destination>.

Например: pip download tornado==6.2.0.Он загрузил все зависимости и скопировал в корзину S3.Реальная проблема здесь в том, что зависимости находятся в .whl или tar.gz или в каком-либо другом формате.

Как я могу ссылаться на pip install tornado==6.2.0 из корзины S3?

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

То, что вы просите, - это реализовать простой индекс упаковки Python , также известный как pyPI. Если вы сконфигурируете файловый сервер (то, что вы рассматриваете как контейнер) способом, описанным PEP, такие инструменты, как pip, будут автоматически знать, как устанавливать пакеты с него.

Но настройка файлового сервера сильно раздражает, и другие люди уже сделали это в любом случае. Таким образом, вместо этого вы можете использовать pypiserver (который также публикует Docker-контейнер, в котором вы можете исчерпать aws), и подключить его репозиторий пакетов к корзине s3, которую вы настроили (эта часть на самом деле может быть немного хитро).

Итак, учитывая, что pypiserver работает на каком-то порту в вашей интрасети, например 3141, вы можете скачать пакеты с него с помощью

pip install mypackage --extra-index-url 0.0.0.0:3141 --trusted-host 0.0.0.0
0 голосов
/ 20 мая 2019

Вы можете попробовать что-то вроде

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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...