Я використовую і те, і (станом на січень, 2020) вони мають деякі поверхневі відмінності, які піддаються різним звичаям для мене. За замовчуванням Conda вважає за краще керувати списком середовищ для вас у центральному місці, тоді як virtualenv робить папку в поточному каталозі. Колишній (централізований) має сенс, якщо ви, наприклад, займаєтесь машинним навчанням і просто маєте декілька широких середовищ, якими ви користуєтесь у багатьох проектах і хочете стрибнути в них з будь-якого місця. Останнє (за папкою проекту) має сенс, якщо ви робите маленькі разові проекти, які мають абсолютно різні набори вимог до lib, які справді більше належать до самого проекту.
Порожнє середовище, яке створює Conda, становить приблизно 122 МБ, тоді як для virtualenv - близько 12 МБ, тому це ще одна причина, по якій ви не можете розкидати середовища Конди скрізь.
Нарешті, ще одним поверхневим свідченням того, що Conda надає перевагу централізованим envs, є те, що (знову ж таки, за замовчуванням), якщо ви створюєте Conda env у власній папці проекту та активуєте його, префікс імені, що з’являється у вашій оболонці, є (занадто довгим) абсолютом шлях до папки. Ви можете це виправити, давши йому ім’я, але virtualenv робить все правильно за замовчуванням.
Я очікую, що ця інформація стане швидко застарілою, оскільки два менеджери пакетів базуються на домінування, але це вже сьогодні компроміси :)