Конда список против различий в списке пипа в среде Конда - PullRequest
0 голосов
/ 23 сентября 2018

Я использую conda версии 4.5.11, python 3.6.6 и Windows 10.

Я создаю виртуальную среду, используя conda

conda create --name venv

Когда я проверяю наличие установленных пакетов

conda list

он (как и ожидалось), пустой.

Но

pip list

довольно длинный.

Вопрос № 1: Почему?- когда я создаю виртуальную среду, используя

python -m venv venv

, список пипов пуст.

Когда я не в активированной виртуальной среде, тогда

conda list

также довольно длинный, но это не то же самое, что список пипсов (* см. продолжение ниже). В общем, список пипсов является подмножеством списка conda.Существует по крайней мере одно исключение («таблицы» в списке пипсов, а не в списке conda), но я не слишком анализировал.Список conda изменяет / отображает некоторые (все?) Дефисы на подчеркивания (или pip делает наоборот).Есть также несколько примеров отличия версий.

Вопрос № 2: Почему?(и ответьте на вопросы - могут ли они быть? и меня это должно волновать?)

Я надеялся получить базовое «окружение» conda (что может быть неправильным словом) - т.е. пакеты, которые я установил/ обновлен в Ananconda / conda, и тогда все виртуальные среды будут извлечены из этого.Если бы мне нужно было установить что-то новое, это было бы сначала установлено в базовую линию.Только когда мне нужно будет создать приложение с использованием разных версий пакетов из базовой линии (что я не предвижу в обозримом будущем), мне нужно будет обновить виртуальные среды по-другому.

Вопрос № 3: япродумывать это?Я ищу последовательности и надеюсь на понимание.

- Спасибо.Craig

Follow # 1: после установки некоторых пакетов в мой пустой conda venv результаты списка conda и списка pip по-прежнему различны, но список pip намного короче, чем был, но является подмножествомсписок conda (он не включает два пакета, которые я не использую, поэтому мне все равно)

Follow # 2: в пустой среде я запустил некоторый код

python my-app.py

и был лишь слегка удивлен, что он работал без ошибок.Как и ожидалось, когда я установил пакет (pytest), он не запустился из-за отсутствующих зависимостей.Итак ... пусто не пусто.

1 Ответ

0 голосов
/ 25 сентября 2018

1.conda list против pip list

Если все, что вы сделали, это создали среду (conda create -n venv), то там ничего не установлено, включая pip.Ваша ОС по-прежнему будет пытаться разрешить pip в вашей переменной PATH, и, вероятно, она находит базу pip в установке Anaconda / miniconda.

2.pip list - это подмножество conda list за пределами env

Это может быть просто вопрос conda установки вещей, отличных от пакетов Python, которые pip не имеет возможности установить.Мне не до 100, но для меня нет ничего удивительного в том, что conda, который является более общим менеджером пакетов, распознает больший набор пакетов.

3.Чрезмерное мышление

Я думаю, что это больше вопрос стиля рабочего процесса, и, как правило, выходит за рамки SO, потому что он собирается получить взвешенные ответы.Попробуйте поискать лучшие рекомендации и выбрать стиль, соответствующий вашим целям.

Лично я бы никогда не попытался установить все в базу en / base conda просто потому, что чем больше вы устанавливаете, тем больше у вас зависимостьТребования тянут в разные стороны.В конце концов, conda все равно будет централизовать все пакеты (anaconda/pkgs или miniconda3/pkgs), поэтому я сосредоточусь на создании модульных envs, которые служат определенным целям.

...