Могу ли я устанавливать пакеты из определенных каналов при использовании PIP, насколько это возможно в Anaconda?

868
Daniel Möller

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

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

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

0

2 ответа на вопрос

1
Anaksunaman

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

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

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

1
hoefling

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/ 
Это очень, вероятно, ответ, но как я могу найти URL для каналов, используемых Anaconda? Например, есть канал `intel` (и только это, без адреса, без простой информации в интернете) Daniel Möller 5 лет назад 0
Я не очень люблю `conda`, но AFAIR` conda info` должна, по крайней мере, печатать все URL используемых каналов, но без сопоставления имен. hoefling 5 лет назад 1