This article appears to be NOT about someone who discovered uv after using venv/pip, but rather an article about someone who discovered uv after not using virtual environments at all, and is mostly excited about the cleanliness of virtual environments.

The article shows some advantages compared to plain virtual environments:

In principle, you can ‘activate’ this new virtual environment like any typical virtual environment that you may have seen in other tools, but the most ‘uv-onic’ way to use uv is simply to prepend any command with uv run. This command automatically picks up the correct virtual environment for you and runs your command with it. For instance, to run a script — instead of

   source .venv/bin/activate
   python myscript.py
you can just do

   uv run myscript.py

> The article shows some advantages compared to plain virtual environments

No; they are plain virtual environments. There is no special kind of virtual environment. Uv simply offers its own command structure for managing those environments. In particular, `uv run` just ensures a venv in a specific location, then uses it.

There is no requirement to activate virtual environments in order to use them (unless you have some other tooling that specifically depends on the environment variables being set). You can, similarly, "just do"

  .venv/bin/python myscript.py
without uv installed.

> This command automatically picks up the correct virtual environment for you

Some people dislike such magic, especially since it involves uv having an opinion about where the virtual environment is located.

Sorry, you're right I should have said "plain venv", as in the program.

`uv run` will also sync the environment to be sure it exists and meets the correct specifications.

But yes, it's optional. You can also just do `uv sync` to sync the environment and then activate it like normal.

Or use `uv venv`, `uv pip` commands and just take the speed advantage.

[deleted]