Разница между замораживанием пипса и списком conda

Я использую как "pip freeze", так и "conda list", чтобы перечислить пакеты, установленные в моей среде, но в чем их отличия?


person DiveIntoML    schedule 20.12.2016    source источник
comment
stackoverflow.com/a/33694864/1005215   -  person Nehal J Wani    schedule 19.01.2017
comment
см. stackoverflow.com/questions/18640305/   -  person Kuppu    schedule 12.05.2017
comment
У меня есть пакеты в моем conda env, некоторые из которых были установлены с помощью conda, а другие были установлены с помощью pip (из-за того, что библиотеки поддерживаются только в pip, и что я использую conda). Так мне нужно сгенерировать два requiremen_{pip or conda}.py? Или как мне решить эту проблему и все правильно установить?   -  person Charlie Parker    schedule 23.04.2021


Ответы (1)


Если цель состоит только в том, чтобы вывести список всех установленных пакетов, подходящим вариантом будет pip list или conda list.

pip freeze, как и conda list --export, больше предназначен для создания файлов требований для вашей среды. Например, если вы создали пакет в настроенной среде с определенными зависимостями, вы можете сделать conda list --export > requirements.txt. Когда вы будете готовы распространить свой пакет среди других пользователей, они могут легко скопировать вашу среду и связанные с ней зависимости с conda create --name <envname> --file requirements.txt.


Различия между conda и pip требуют более подробного обсуждения. На StackOverflow есть множество объяснений. Эта статья Джейка Вандерпласа великолепна читайте также.

Вы также можете найти это таблица полезная. В нем перечислены эквивалентные операции между conda, pip и virtualenv.

person Shan Dou    schedule 03.08.2017
comment
Красивый стол, кажется, сдвинулся ... 404! - person drevicko; 19.08.2019
comment
Спасибо, что заметили это! Интересно, связано ли это с тем фактом, что в наши дни virtualenv может понадобиться меньшему количеству людей (pyenv и pipenv могли бы стать более доминирующими силами). Просто исправил ссылку и ограничил сравнение между pip и conda (virtualenv больше не отображается). - person Shan Dou; 19.08.2019
comment
Этот сайт - моя документация - я всегда хотел исправить их ;-) - Я снова добавил virtualenv (он находится в таблице, если вы прокрутите вправо), не стесняйтесь удалять ссылку на него, если вы чувствуете, что она читается лучше. (: - person drevicko; 20.08.2019
comment
Я пришел сюда в поисках conda list --export. Рассмотрим еще один вопрос, на который ответил кто-то, кто начал с conda после первого использования pip. - person rocksNwaves; 08.08.2020
comment
В то время как мой код работает без ошибок, когда я следую за списком conda --export ›requirements.txt и conda create --name ‹envname› --file requirements.txt, я получаю обнаруженные конфликты! Ищем несовместимые пакеты. , и не может создать среду. Любая идея ? - person utosun; 17.03.2021
comment
@ UğurGürkanTosun Я не вижу явных проблем в синтаксисе. Возможно, вы не начали с чистой среды при первом запуске кодов (поэтому файл требований мог включать части, которые вам не нужны для ваших кодов). Кроме того, существует разница между статическим и динамическим файлом среды. Если вы полностью управляете своей средой с помощью conda, подумайте также об использовании yaml вместо этого и укажите версии только тогда, когда вам действительно нужно. Хороший пример можно увидеть в репозитории pyjantor: github.com/ericmjl/ pyjanitor / blob / dev / environment-dev.yml - person Shan Dou; 21.03.2021
comment
У меня есть пакеты в моем conda env, некоторые из которых были установлены с помощью conda, а другие были установлены с помощью pip (из-за того, что библиотеки поддерживаются только в pip, и что я использую conda). Так мне нужно сгенерировать два requiremen_{pip or conda}.py? Или как мне решить эту проблему и все правильно установить? - person Charlie Parker; 23.04.2021
comment
@CharlieParker Поскольку мы всегда можем использовать pip в среде conda, вам не нужно иметь два отдельных файла. Например, когда вы запускаете conda list, вы должны увидеть столбцы Build и Channel, четко указывающие, установлен ли пакет через conda или pip: python # Name. Version. Build. Channel pygments 2.8.1 pypi_0 pypi pyparsing 2.4.7 pypi_0 pypi python 3.9.2 h2502468_0_cpython conda-forge - person Shan Dou; 24.04.2021