# Uv vs. conda vs. virtualenv

**URL:** <https://ask.cyberinfrastructure.org/t/uv-vs-conda-vs-virtualenv/4232>\
**Category:** Q&A\
**Tags:** python, conda\
**Created:** [May 11, 2025, 1:38am UTC](https://ask.cyberinfrastructure.org/t/uv-vs-conda-vs-virtualenv/4232 "2025-05-11T01:38:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ktrn](https://ask.cyberinfrastructure.org/user_avatar/ask.cyberinfrastructure.org/ktrn/32/554_2.png) [@ktrn](https://ask.cyberinfrastructure.org/u/ktrn)\
**Post date:** [May 11, 2025, 1:38am UTC](https://ask.cyberinfrastructure.org/t/uv-vs-conda-vs-virtualenv/4232/1 "2025-05-11T01:38:27Z")

</div>

Dear colleagues,

Have you used `uv` to manage your Python environment ([https://github.com/astral-sh/uv](https://github.com/astral-sh/uv))? It seems to work very fast, but I wonder if there are any challenges or downsides to using this package management system?  
Thank you.

---

<div class="post-metadata">

**Author:** ![sasmita](https://ask.cyberinfrastructure.org/letter_avatar_proxy/v4/letter/s/b487fb/32.png) [@sasmita](https://ask.cyberinfrastructure.org/u/sasmita)\
**Post date:** [May 12, 2025, 3:26am UTC](https://ask.cyberinfrastructure.org/t/uv-vs-conda-vs-virtualenv/4232/2 "2025-05-12T03:26:24Z")

</div>

the `uv`project by Astral (creators of Ruff and other popular Python tools) is a _fast Python package manager and virtual environment builder_. It aims to replace tools like `pip`, `virtualenv`, `pip-tools`, and even parts of `poetry` or `hatch`.

Advantages of `uv`:

1. Blazing fast,
2. All-in-one tool: It combines multiple tools: dependency resolution, virtual environment management, installation, and caching. Avoids the need for `pip-tools`, `virtualenv`, `venv`, `poetry`, etc.
3. better dependency,
4. fully compatible with Python Enhancement Proposal (PEP) standard: Follows Python packaging standards like `pyproject.toml`, editable installs, etc.

Downsides of `uv`:

1. Very new project, some IDEs and tools e.g. VS Code, PyCharm may not recognize `uv` generated env.
2. If you’re used to `pip` and `virtualenv`, there’s a new CLI to learn (`uv pip`, `uv venv`, etc.).
3. While growing quickly, it doesn’t yet have the same community maturity or depth of StackOverflow support as `pip` or `poetry`.

---

<div class="post-metadata">

**Author:** ![nucci](https://ask.cyberinfrastructure.org/letter_avatar_proxy/v4/letter/n/f6c823/32.png) [@nucci](https://ask.cyberinfrastructure.org/u/nucci)\
**Post date:** [August 4, 2025, 1:34pm UTC](https://ask.cyberinfrastructure.org/t/uv-vs-conda-vs-virtualenv/4232/3 "2025-08-04T13:34:43Z")

</div>

I have no direct experience with uv, and it does look like something worth looking into. Using conda to manage an environment can be very bloated and this can chew up disk space in a hurry. Most sites provide users with very small home directory spaces, and by default conda like to write new environments into $HOME/.conda/envs. I redirect to a location with much more space, but even when doing so, I end up sacrificing disk space due to the inefficient ways conda creates these environments.

virtualenv is a better approach IMHO, although lately I’ve been exploring spinning up custom containers instead whenever I need a specific environment.
