|
|
Subscribe / Log in / New account

Convergence in the pip and conda worlds?

Convergence in the pip and conda worlds?

Posted Feb 2, 2023 10:05 UTC (Thu) by kleptog (subscriber, #1183)
Parent article: Convergence in the pip and conda worlds?

On the one hand we have :

> pip is one of the "batteries included" with Python so it is often seen as the "official" packaging solution, even though the PyPA does not necessarily see it that way.

Which surprised me. If pip isn't official then no Python packaging solution is official. Which is just bizarre. It certainly surprised everyone I suggested it to.

On the other hand we have:

> because pip is responsible for supporting all python environments – venv, distro, whatever – while conda is free to specialize

If pip is responsible to for supporting all environments, then that would imply it's official. Otherwise this responsibility would not exist.

ISTM that the quickest win is to standardise a way for packages to declare external dependencies in normal python packages. Even if pip doesn't use it, it opens the way for other tools to use it.


to post comments

Convergence in the pip and conda worlds?

Posted Feb 2, 2023 10:38 UTC (Thu) by dottedmag (subscriber, #18590) [Link] (1 responses)

The tricky part will be the specification.

Conda, Nix, Debian and other closed infrastructures can do it by controlling the whole set of packages.

However Python packages are exposed to the wild world, where even "I need a C compiler" won't do, as there are many C compilers with different supported C versions, bugs, incompatible extensions, CLI interfaces, target platforms, ideas about ABI etc.

Convergence in the pip and conda worlds?

Posted Feb 2, 2023 10:38 UTC (Thu) by dottedmag (subscriber, #18590) [Link]

infrastructures -> ecosystems

Convergence in the pip and conda worlds?

Posted Feb 9, 2023 15:29 UTC (Thu) by fung1 (subscriber, #144307) [Link]

The "Authority" in "Python Packaging Authority" (PyPA) was originally meant as a joke, highlighting the lack of control that group is effectively able to exert. It's gotten increasing recognition from the core CPython developers and SC since then, but at the end of the day it's still only a self-identifying collective of people developing interrelated packaging solutions for a large segment of the Python packaging ecosystem, and the opinions expressed by folks who count themselves as a part of that collective don't necessarily the reflect those of the CPython project, even if they're probably some of the most visible and easiest opinions to find sometimes referred to by official CPython documentation. They have, for example, fairly recently (in Python lifetime terms) gotten Pip included directly in builds of the standard library shipped as part of CPython, which has increased the perception of official status for it.

A big part of why Pip is not viewed as "the official solution" to package installation is that PyPA has been striving to reinvent packaging tools so that they're based on published standards and specifications rather than a de facto "whatever this tool does is the standard" approach. This means even something as seemingly ubiquitous as Pip is supposed to just be one possible implementation of those standards, in order to allow for fair competition from anyone else who wants to develop an interoperable replacement. Officially blessing one solution is viewed by many as favoritism, making it very hard if not nearly impossible for any alternative to gain sufficient mind-share. The initial standards are being derived from what these tools do in order to not cause them to suddenly be non-compliant, but with the idea that as people want to implement sweeping new features or scope changes in the tools, they need to get them reflected in reviewed and agreed-upon published standards first.

Pip's maintainers see it as being responsible for meeting many of these use cases, but that doesn't mean the responsibility is placed on it by the CPython project. Rather, it's a scope the maintainers have chosen to give it, mostly in order to maintain backwards compatibility for users of earlier versions and predecessors like easy_install. They technically also have the "freedom to specialize" but they prefer not to exercise it, as that would leave many current users of its more general approach in the lurch.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds