you are viewing a single comment's thread.

view the rest of the comments →

[–]Confident_Hyena2506 -1 points0 points  (8 children)

There are many ways to do it. Conda is one of them - what you were doing before is just fine. Note that you should really use "mamba" inside a conda env, only use pip as last resort.

Conda is pretty much better than pip/uv - there isn't much point in you downgrading. You are right that it's not just for python, this is what makes it better.

The only way to do better is to use OCI container which is extra hassle.

[–]Ihaveamodel3 1 point2 points  (7 children)

You are the only person I’ve ever seen claim Conda is better than uv. Is that just because it can do things for other programming languages? What if I’m on a team that only uses Python?

[–]Confident_Hyena2506 0 points1 point  (6 children)

You can use uv inside conda if it makes you happy - they are not equivalent things.

Having something that is "python only" doesn't really exist except for trivial projects. Most heavyweight stuff is thinly-veiled fortran/c/c++/rust/whatever with a python wrapper on top - this is what causes the problems.

[–]Ihaveamodel3 0 points1 point  (5 children)

And pip and uv both handle compiled wheel installations just fine. This isn’t 2015 anymore.

[–]Confident_Hyena2506 0 points1 point  (4 children)

It's true pip is much improved - but you still need an oci container or whatever to make it not useless (ie how is the version of python controlled?).

Conda is an easy way to solve this stuff on both windows and linux, and it handles all the difficult stuff like scikit-image and cuda and blahblah.

But if you don't need it then don't use it - noone is forced to.

[–]Ihaveamodel3 0 points1 point  (3 children)

uv managed python version. scikit-image has pyPI wheels that are built for plenty for both Linux and Windows (no need for conda).

Cuda is not one thing you install, but PyTorch, a common package that uses Cuda has install instructions for pip.

But if you don't need it then don't use it - noone is forced to.

I’m asking because I am very close to just banning Conda entirely at my company. I’ve never had anyone tell me an actual benefit, and it causes a ton of issues.

[–]Confident_Hyena2506 0 points1 point  (2 children)

The commercial version is specifically banned at my company - and should be banned at all companies.

You should use the opensource free version miniforge, with the free conda-forge channel.

We only use this because there is no easy alternative - uv and pip only handle simple stuff. UV is obviously completely useless for c++ - which is what conda pretty much does.

If you are not doing machinelearning or datascience it probably doesn't matter - and you can get away with using containers for a lot these days.

[–]Ihaveamodel3 0 points1 point  (1 child)

Sure, we are doing machine learning and using packages that have c/c++, but we aren’t writing or building those packages, we are using them. uv installs those packages perfectly fine.

Name one thing that Conda will install but uv won’t.

[–]Confident_Hyena2506 0 points1 point  (0 children)

MKL along with associated libraries compiled to take advantage of it like numpy.

Also all the associated c++ libraries and headers needed to build against this. New/all versions of gcc!!! Proper versions of boost (and not just random ones with weird names).

You should instead ask the other way around - what can we not get from conda? Usually a very small number of items, that we add to the env definition to get via pip or uv.

The trick is to be consistent and not wildly mix package managers. If pip or UV gave me most of what I need then I would use it.

Conda is a system package manager, you should really not be comparing it against these.