Рубрики
Без рубрики

Использование индексов пакетов без Pypy

Учебник по использованию индексов пакета Python, кроме PYPI. Помечено Python, упаковка.

По умолчанию инструменты Python, как Пип Установите пакеты из Pypi, индекс пакета Python. Тем не менее, большинство инструментов позволяют вам использовать любой сервер, который реализует ту же API, что и PYPI (обычно но не всегда простой репозиторий API ). Есть две основные причины, по которым вы можете использовать альтернативный индекс пакета:

  • Индекс, который отражает PYPI, давайте поддерживать установку пакетов, даже если они будут удалены из Pypi или Pypi в автономном режиме.
  • Вы можете загружать пакеты в частный индекс вместо Pypi, если вы не хотите делать их публичными.

Как настроить свои инструменты зависит от того, используете ли вы альтернативный индекс на месте или В дополнение к Pypi. Зеркала могут использоваться в любом случае, в то время как личный индекс обычно используется в дополнение к PYPI. Обратите внимание, что Пийдист или самостоятельно хозяин девпи Экземпляр может действовать как зеркало, так и частное индекс.

К сожалению, вам нужно настроить каждый из ваших инструментов индивидуально.

Настройка пипса

Есть две варианты конфигурации для Пип Это позволяет использовать альтернативные показатели:

  • Индекс URL , где Пип изначально проверит на пакеты. По умолчанию для https://pypi.org/simple Отказ
  • Дополнительные индекс URL которые где Пип проверит на пакеты, если они не найдены в URL-адресе индекса. Если предоставлены несколько, они проверяются в порядке.

Если вы используете зеркало, вы можете либо установить его в качестве индекса для установки всех пакетов через зеркало, или вы можете установить его как дополнительный индекс, чтобы использовать его только как резервное копирование. Если вы используете частное зеркало для дополнения Pypi, заманчиво использовать его как дополнительный индекс. Однако, если пакет по тому же названию, что и один из ваших частных пакетов, опубликован на Pypi, это приведет к тому, что они приведут Пип Чтобы установить этот пакет вместо этого. Таким образом, безопасно устанавливать URL-адрес частного индекса в качестве индекса и использовать PYPI в качестве дополнительного индекса.

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

  • Через аргументы командной строки --index-url и --extra-index-url
  • Через переменные среды Pip_index_url и Pip_extra_index_url (Обратите внимание, что это может быть установлено только один раз, поэтому вы можете добавить только один дополнительный индекс таким образом)
  • Через Индекс-URL и Extra-index-url Настройки в Pip.conf Файл которые могут жить:

    • В корне вашей виртуальной среды (например, ./venv )
    • В вашем пользовательской конфигурации Пип подкаталог (обычно ~/.Config/pip на Linux)
    • В вашем каталоге Config System Config ( /etc на Linux)

Настройка шпагата

Стандартный инструмент для загрузки пакетов Python является шпагат . Однако только некоторые Сортировка индексов Python поддерживает загрузку с шпагат – только мои знания Пийдист и Гемфури делать среди размещенных решений. Другие индексы, как правило, будут предлагать свои собственные пакеты Python для развертывания.

Есть два способа настроить шпагат Загрузить в репозиторий, отличный от pypi:

  • Через командную строку --repository-URL аргумент
  • Через .pypirc Файл В вашем домашнем каталоге

.pypirc Файл должен выглядеть так:

[distutils]
index-servers =
    pydist

[pydist]
repository: 
username: 
password: 

Если вы включите несколько Индекс-серверы в .pypirc. , вы можете пройти имя, которое вы дали индекс сервера ( Pydist в примере выше) к --repository Флаг при загрузке. .pypirc Файл удобен, потому что вам не будет предложено для имени пользователя/пароля.

Настройка Pipenv.

Pipenv, вероятно, является самым популярным инструментом блокировки зависимостей для Python. Некоторые руководства предлагают использовать Pip_index_url и Pip_extra_index_url Переменные среды для настройки пиронв Как будто ты бы пипс , Но это не обрабатывается правильно и сопровождающий сказал мне не использовать его .

Вместо этого вы можете использовать [[Источник]] раздел в верхней части вашего Pipfile :

[[source]]
url = ''
verify_ssl = true
name = 'pydist'

Если вы хотите использовать несколько индексов пакетов, вы можете включить несколько [[Источник]] Разделы – когда Пипнв Находит пакеты, которые он пытается их в том порядке, в котором они указаны, или если вы объявите пакет, как mypackage = {,} Сначала он попробует указанный индекс. Тем не менее, Пипнв Обработка нескольких показателей является В настоящее время багги Отказ

Оригинал: “https://dev.to/alexbecker/using-non-pypi-package-indices-af”