Differences between distribute, distutils, setuptools and distutils2?

后端 未结 5 2054
别跟我提以往
别跟我提以往 2020-11-22 14:30

The Situation

I’m trying to port an open-source library to Python 3. (SymPy, if anyone is wondering.)

So, I need to run 2to3 automatically w

5条回答
  •  时光说笑
    2020-11-22 14:59

    I’m a distutils maintainer and distutils2/packaging contributor. I did a talk about Python packaging at ConFoo 2011 and these days I’m writing an extended version of it. It’s not published yet, so here are excerpts that should help define things.

    • Distutils is the standard tool used for packaging. It works rather well for simple needs, but is limited and not trivial to extend.

    • Setuptools is a project born from the desire to fill missing distutils functionality and explore new directions. In some subcommunities, it’s a de facto standard. It uses monkey-patching and magic that is frowned upon by Python core developers.

    • Distribute is a fork of Setuptools that was started by developers feeling that its development pace was too slow and that it was not possible to evolve it. Its development was considerably slowed when distutils2 was started by the same group. 2013-August update: distribute is merged back into setuptools and discontinued.

    • Distutils2 is a new distutils library, started as a fork of the distutils codebase, with good ideas taken from setup tools (of which some were thoroughly discussed in PEPs), and a basic installer inspired by pip. The actual name you use to import Distutils2 is packaging in the Python 3.3+ standard library, or distutils2 in 2.4+ and 3.1–3.2. (A backport will be available soon.) Distutils2 did not make the Python 3.3 release, and it was put on hold.

    More info:

    • The fate of Distutils – Pycon Summit + Packaging Sprint detailed report
    • A Quick Diff between Distutils and Distutils2

    I hope to finish my guide soon, it will contain more info about each library’s strong and weak points and a transition guide.

提交回复
热议问题