В Anaconda есть возможность добавления "каналов" в файлы конфигурации.

Каждый пакет, установленный с помощью conda install ... , сначала ищет пакеты в этих каналах (например, канал intel ).

Есть ли способ заставить PIP также устанавливать с определенных каналов?

2 ответа2

1

Если я не ошибаюсь, я считаю, что у pip нет "каналов" так же, как у Анаконды. По сути, pip предполагает, что для простых онлайн-установок (например, pip install package_name) он будет извлекаться из PyPI.

Тем не менее, независимо от того, что, безусловно, можно извлечь из других источников (как локальных, так и удаленных) - см. Официальное руководство по установке пакетов Python для некоторых примеров. Поддерживаемые источники могут включать системы контроля версий (VCS), альтернативные индексы (т.е. не PyPI), локальное дерево src и локальные архивы / колеса.

Дополнительную документацию по поддержке VCS для Git, Mercurial, Subversion и Bazaar можно найти здесь.

1

pip поддерживает указание дополнительных репозиториев для поиска пакетов; они ведут себя аналогично каналам в conda<4 . Пример:

$ pip install somepkg --extra-index-url http://myindex.org

Несколько дополнительных индексов могут быть указаны в pip.conf:

[global]
extra-index-url=
    http://myindex.org
    http://other-index.org
    http://third-index.org

Когда индекс предоставляется через extra-index-url , pip всегда будет искать индекс по умолчанию на https://pypi.org , затем дополнительный индекс и устанавливать первый соответствующий пакет. Переопределение http://pypi.org также возможно через

$ pip install --index-url http://myindex.org

хостинг локального индекса

На самом деле довольно легко разместить локальный индекс, если он вам нужен. Хотя есть много сторонних сервера PyPi доступных (чтобы назвать несколько: devpi wheelhouse или pypiserver вам не нужно ничего , кроме установки Python , чтобы запустить его самостоятельно. Создайте каталог с подкаталогами с именами пакетов и с установочными файлами:

repo
└── MyPackage
     └── MyPackage.tar.gz

Перейдите в каталог и запустите сервер stdlib:

$ cd repo/
$ python -m SimpleHTTPServer 9000

Теперь вы можете установить пакеты из вашего локального репозитория:

$ pip install MyPackage --extra-index-url = http://127.0.0.1:9000/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .