Как включить файлы, загружаемые с сервера, в установку pip? - PullRequest
0 голосов
/ 16 октября 2019

Я хочу создать pip-устанавливаемый (это важно, у нас уже есть работающая в основном простая в установке версия, но мы хотим перейти на PIP) пакет python, который по сути является оберткой для некоторых функций Си. Насколько я понимаю, я не могу рассчитывать на пользователей, у которых установлены компиляторы (например, Windows), и поэтому желательно, чтобы я предварительно компилировал эти файлы и загружал их на сервер. Я хотел бы, чтобы PIP загружал подходящий файл (я бы предпочел, чтобы не было необходимости, чтобы все эти файлы поставлялись вместе с пакетом) во время установки. Я пытался читать документы, но не смог найти там решения для моей проблемы. Может ли PIP загрузить скомпилированный файл C с сервера во время установки? Если так, каков курс действий? Должен ли я попытаться включить сценарий python для запуска при установке, который определит ОС и архитектуру, а затем получит доступ к определенной ссылке?

1 Ответ

0 голосов
/ 17 октября 2019

Вы правы в большинстве своих предположений. Вы можете предложить исходный дистрибутив, или sdist, для которого требуются инструменты сборки на целевом компьютере для установки. Он часто загружается в качестве запасного варианта, когда нужного * колеса платформы *1003* не существует, или если вы хотите, чтобы пользователи могли его создавать самостоятельно.

Говоря о колесах, этоэто имя текущего стандарта для бинарных дистрибутивов Python, или bdist s. Если ваш пакет содержит код, который необходимо скомпилировать, колеса будут в конечном итоге зависеть от платформы - в зависимости от используемой системы сборки, которая может быть Linux, macOS или Windows. См., Например, запись sklearn в pyPI, которая включает одно колесо на ось для всех поддерживаемых версий Python (плюс поддержка 32/64 бит, но это уже другая история).

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


Смежный вопрос:

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