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?
> 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.
Posted Feb 2, 2023 10:38 UTC (Thu)
by dottedmag (subscriber, #18590)
[Link] (1 responses)
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.
Posted Feb 2, 2023 10:38 UTC (Thu)
by dottedmag (subscriber, #18590)
[Link]
Posted Feb 9, 2023 15:29 UTC (Thu)
by fung1 (subscriber, #144307)
[Link]
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.
Convergence in the pip and conda worlds?
Convergence in the pip and conda worlds?
Convergence in the pip and conda worlds?