Лучшие практики с pip и conda для согласованности

Я знаю, что есть много вопросов о сосуществовании и взаимозаменяемости/невзаимозаменяемости pip и conda. Это не мой вопрос: я знаю, что мне нужны оба для моей работы, я использую оба, и по большей части мои conda envs представляют собой управляемый беспорядок.

Но вот в чем дело: есть много способов установить pip. Так получилось, что conda у меня было первым, так что мой pip прошел через anaconda/bin/pip. Это единственный pip на моей машине. Вот мои вопросы:

  1. Это разумно? Хочу ли я, чтобы мой pip был usr/bin/pip и не зависел от глобального conda? Это кажется неразумным.
  2. Если я установлю новый pip, скажем, через brew или easy_install, должен ли я начать загрузку пакетов через этот новый pip? Будет ли это ужасно и все испортит?

Спасибо!


person thorium    schedule 07.03.2018    source источник


Ответы (1)


Pip всегда требует установки версии Python и связан с этой конкретной установкой Python. По умолчанию pip устанавливает пакеты для собственного Python в соответствующий каталог site-packages внутри каталога библиотеки Python. Точное расположение этого каталога зависит от вашей операционной системы и способа установки conda.

Если вы устанавливаете pip через Homebrew или с другой установкой Python, вам не следует использовать этот pip и ожидать, что он будет установлен для conda. В этом отношении, если вы создаете новую среду conda, вам не следует ожидать, что pip в этой среде будет устанавливать пакеты в другую среду.

Существует опция --user для pip, которая устанавливает пакеты в каталог в вашей учетной записи пользователя (в системах * nix это ~/.local; я не могу вспомнить, где это для Windows). Эти пакеты смогут быть найдены всеми версиями Python с одним и тем же основным и дополнительным номером версии. Однако не рекомендуется устанавливать пакеты с целью их совместного использования несколькими Python, потому что, если разные Python были скомпилированы разными компиляторами, у вас могут возникнуть проблемы.

person darthbith    schedule 07.03.2018