I'm diving into using UV for the first time in my corporate job and I'm grappling with a couple of concerns: 1) UV sets up a virtual environment within my project folder and pulls in dependencies—this could easily lead to over 200MB of files just for a simple data processing task with pandas and marimo. If I have multiple projects, does this mean I'll be duplicating a lot of data? Is there a way to have a centralized library setup, or is that where conda comes in? 2) UV automatically creates a git repository for each project, which is good in theory, but tools like OneDrive and Dropbox struggle with the .git folder due to the sheer number of files and subdirectories involved. I've run into issues with this before. Is UV the right tool for my needs, or how do you all manage these challenges? Thanks!
6 Answers
UV is solid! You just need to avoid syncing git-managed folders. Manage dependencies through the pyproject.toml file, and let UV handle it. Also, you can automate environment activation with direnv or similar tools when you enter specific project folders, which is super helpful!
First off, syncing code through Dropbox or OneDrive is not ideal. Instead, I'd recommend using a proper version control system like git, and just keep those .venv folders local. Don’t sync them! That's a better route than switching your package management tools.
Regarding the space issue, UV uses a central package cache, so it just links to those files instead of duplicating them for every venv, which should save you some space. But if you're on Windows, check that everything is set up right for linking.
So, there won't be duplication on my disk? That would be great!
For handling those .git folders, I suggest not syncing them with your backup system. Keep them local and use your company repositories for versioning. It's really the best way to manage changes without clogging up your sync tools.
If you want to avoid that automatic git repo creation, just run the `uv init --vcs none` command. It’s a handy option!
You will indeed need to pull around 200MB the first time you run UV, but after that, it uses symlinks for files that have already been downloaded. That's standard, and you won't find a workaround since even conda works similarly.
Got it! I just don’t want too much storage being eaten up.

I totally get that! With big projects, company policy can make it tricky since we have to store everything in SharePoint, which means repos get synced too!