Używam obu i (od stycznia 2020 r.) Mają one pewne powierzchowne różnice, które nadają mi się do różnych zastosowań. przez domyślnie Conda woli zarządzać listę środowisk dla Ciebie w centralnej lokalizacji, natomiast virtualenv sprawia folder w bieżącym katalogu. Ten pierwszy (scentralizowany) ma sens, jeśli np. Uczysz się maszynowego uczenia się i masz tylko kilka szerokich środowisk, z których korzystasz w wielu projektach i chcesz wskoczyć do nich z dowolnego miejsca. Ten drugi (na folder projektu) ma sens, jeśli wykonujesz małe jednorazowe projekty, które mają zupełnie inne zestawy wymagań lib, które tak naprawdę należą bardziej do samego projektu.
Puste środowisko, które tworzy Conda, wynosi około 122 MB, podczas gdy wirtualne środowisko ma około 12 MB, więc to kolejny powód, dla którego wolisz nie rozpraszać środowisk Conda wszędzie.
Wreszcie, kolejną powierzchowną wskazówką, że Conda woli scentralizowane środowisko, jest (ponownie, domyślnie), jeśli utworzysz środowisko Conda we własnym folderze projektu i aktywujesz go, prefiks nazwy pojawiający się w twojej powłoce jest (zdecydowanie za długi) absolutem ścieżka do folderu. Możesz to naprawić, nadając mu nazwę, ale virtualenv domyślnie robi to dobrze.
Oczekuję, że te informacje szybko się zestarzeją, gdy dwóch menedżerów pakietów będzie walczyć o dominację, ale są to kompromisy na dziś :)