Я использую оба, и (по состоянию на январь 2020 г.) у них есть некоторые поверхностные различия, которые поддаются мне по-разному. По умолчанию Conda предпочитает централизованно управлять списком сред, тогда как virtualenv создает папку в текущем каталоге. Первый (централизованный) имеет смысл, если вы, например, выполняете машинное обучение, и у вас есть всего пара широких сред, которые вы используете во многих проектах и хотите перейти в них из любого места. Последнее (для каждой папки проекта) имеет смысл, если вы выполняете небольшие разовые проекты, которые имеют совершенно разные наборы требований к библиотекам, которые на самом деле больше относятся к самому проекту.
Пустая среда, которую создает Conda, составляет около 122 МБ, в то время как virtualenv - около 12 МБ, так что это еще одна причина, по которой вы можете предпочесть не разбрасывать среды Conda повсюду.
Наконец, еще одним поверхностным признаком того, что Conda предпочитает свои централизованные env, является то, что (опять же, по умолчанию), если вы действительно создаете Conda env в своей собственной папке проекта и активируете его, префикс имени, который появляется в вашей оболочке, является (слишком длинным) абсолютным путь к папке. Вы можете исправить это, присвоив ему имя, но virtualenv по умолчанию делает правильные вещи.
Я ожидаю, что эта информация быстро устареет, поскольку два менеджера пакетов соперничают за доминирование, но на сегодняшний день это компромиссы :)
РЕДАКТИРОВАТЬ: Я снова рассмотрел ситуацию в 04/2021, и она не изменилась. По-прежнему неудобно устанавливать локальный каталог с помощью conda.
person
Pat Niemeyer
schedule
15.01.2020