Mine is personally uv because it's so fast and I like the way it formats everything as a package. But to be fair, I haven't really tried out any other package managers.
there are 3 popular package managers for python modules being used the most frequently: conda pip apt(for debian-based linux).
I initially installed anaconda which gave me conda but together with a lot of extra package bloat I may never use.
So naturally I tried miniconda. It turns out there are caveats to this too:
conda-forge is touted as a robust channel but when i tried installing all my most used packages from the conda-forge channel here is what I got:
-
python3.10 as of writing -
pandas1.3.4 (latest) -
scikit-learn(latest) -
jupyterlab(no problem) -
matplotlib(CANNOT INSTALL. dependency conflict with python version on conda-forge) -
requests(CANNOT INSTALL. dependency conflict with python version on conda-forge)
I tried conda package manager with the defaults channel:
-
all the packages install but
pythonfrom defaults channel is 3.9.7. Everything works with this but no python==3.10.
When I made a separate virtual environment and tried installing via pip package manager only:
-
everything worked.
python--version is 3.10. every package installed to the latest version EXCEPTscikit-learnwhich is not installing for some reason.
And then there's apt which manages all other non-python packages on my linux and has a few python packages on ubuntu's repositories. But apt does not install packages in virtual environment and may not contain as many packages as pip or conda.
it appears conda with defaults channel is the most robust of all. I don't want to use multiple package managers as it is a hassle when updating and may lead to dependency hell. I want to know which package managers are being used the most considering they are hassle-free and easy to update and keep track of.
So what package manager do you use?
Videos
Trying to make your Python automation smooth and hassle-free? Which package manager do you actually reach for:
-
pip – simple and classic
-
pipenv – keeps it tidy
-
poetry – fancy and powerful
-
conda – big on data science
-
Other – drop your fav in the comments!
Curious to see what everyone else uses—share your pick and why!
Note: I know automation doesn’t strictly depend on the package manager, but I want to know which one makes it easier to manage virtual environments, lock files, and dependencies—especially when taking a project live in production.
My background is a golang engineer, and now I am transferring to the AI field, starting to learn Python, and I find that it is too weak in engineering, which may be due to my lack of experience. Recently, I found that the UV tool is one that I use very smoothly, the management is very good, the underlying Rust language implementation is very fast, and I like it very much.
ive heard two guys (js devs) hate python package manager because they were saying that python has a really afterthought or redundant package manager. I have been using python for several years now, and never really have any notable issue with package manager. I thought the package manager is simple and even likely similar to what node modules have.
I just chat with these guys online both on different occasions. at this point I wanted to know if there is any real issue with python package manager?
As standards have progressed and core installers are supporting them (i.e. setuptools and pip) it seems finally a crop of package managers are finally developing for Python which all aim to make the whole lifecycle of managing and building packages easily.
I never migrated any of my workflows to Poetry because I find that workflows I've set up using constraints not completely covered by Poetry features or workflows, and it's complexity is significantly higher than the two shell scripts I use to automate my flow.
So I'm wondering if anyone has significant experience with this new crop of package managers, e.g. PDM, Rye, Hatch, Hauk, pixi, or any others? Any pros or cons? Reasons you would adopt or avoid?
Been getting a tad annoyed with Conda lately, at least as a package manager. So I wanted to hear what everyone else likes to use.
Hi Python community! I have created the first time user overview of PDM - modern Python package manager. Hopefully this post will be useful for the first time users as me, but also provide some insights for PDM developers - see problems I had encountered when used the PDM for the first time.
Thanks
https://mybf.io/article/Pdm
Pretty much title.
I hate how problematic build systems are. I just want to install dependencies and have it work no matter what system im on... or at very least mark incompatibility right.
Npm is bloated and so many libraries require cmake now so it's not even lightweight anymore.
I stg maven is just a solid workhorse no how much I cringe at the xml.
Are there any GUI-based package managers for Python that allow installing libraries and applications without using the command line?
I'm looking for something like a "visual pip" that would make it easy for command-line adverse users to install and manage Python packages.
Does anything like this exist?
I hear a lot about poetry vs. pdm vs. uv and even compared to pip. I've genuinely never had issues just using virtual env + a requirements.txt file or even pipenv. What makes these alternatives better? Is it speed or utilities they expose?
Yes, I have tried PyInstaller and while it works, the act of painstakingly creating the executable on every operating system know to man is daunting. It was fun and games while I compiled PyInstaller from binary to work on windows (x64) and then compiling the same project on a 2015 (rocking an Intel chip) Mac. The problem arose with me packaging my application with the number of Linux distros out there. I do believe I will run into problems with CPU architecture as well because Arm, even with the new compatibility layer does not work well with X86 and x64.
Is there a package manger or a group of tool that can help achieve my goal? While PyPI does package the software but as a python package. As stated, I want my project to be compiled native to the Os(es), i.e cross-compiling.