Differences between revisions 47 and 48
Revision 47 as of 2009-05-07 08:43:06
Size: 2883
Editor: tarek
Comment:
Revision 48 as of 2009-07-22 07:59:26
Size: 3728
Editor: techtonik
Comment: + attemp to describe historical Distutils legacy
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
Distutils is by now the standard mechanism to distribute Python packages and extensions, and appeared in Python 1.6. It runs under 1.5.2 though, but you have to install it (once) to use it for that Python version. Distutils is the standard mechanism to distribute Python packages and extensions since Python 1.6.
Line 55: Line 55:

==== History ====
Distutils module was included in standard distribution in Python 1.6. It was back in year 2000. Before that Distutils was available in Python 1.5.2 as a separate download. [[http://www.python.org/doc/1.6/dist/dist.html|Since then]] Distutils expanded with new commands, but after almost 10 years basic principles stays the same - there is central '''setup.py''' file, which everybody can add its own code to. There is configuration '''setup.cfg''' where you can set default options for supported Distutils commands. The flexibility that Distutils architecture promotes, the lack of conventions and API that enforces them resulted in that there still no way to uninstall or list installed packages/modules, no way to query their versions either. Absence of clear border between Distutils and custom code places additional burden on newcomers in Distutils packaging that prefer to learn by example from some other existing configuration.

Distutils

Distutils is the standard mechanism to distribute Python packages and extensions since Python 1.6.

Current status

Roadmap for Python 2.7 and Python 3.2 :

  • Introduce the new version comparison algorithm in Distutils
  • Standardize the .egg-info directory, provide APIs (PEP 376)
  • Change PKG-INFO content (PEP 345 changes)
  • Finish the massive cleanup

Still needs some discussions

  • plugin systems, entry points
  • static metadata
  • testing infrastructure

Current work

Learning Distutils

Documentation

Projects

  • /Projects - please add a listing to this page if you're working on Distutils (and help us reduce duplication of effort)

  • /Extensions is a repository of extensions for your "setup.py".

Tutorials

History

Distutils module was included in standard distribution in Python 1.6. It was back in year 2000. Before that Distutils was available in Python 1.5.2 as a separate download. Since then Distutils expanded with new commands, but after almost 10 years basic principles stays the same - there is central setup.py file, which everybody can add its own code to. There is configuration setup.cfg where you can set default options for supported Distutils commands. The flexibility that Distutils architecture promotes, the lack of conventions and API that enforces them resulted in that there still no way to uninstall or list installed packages/modules, no way to query their versions either. Absence of clear border between Distutils and custom code places additional burden on newcomers in Distutils packaging that prefer to learn by example from some other existing configuration.

Misc.

/Proposals

#distutils - irc channel for Distutils

Distutils (last edited 2015-11-21 15:09:39 by NickCoghlan)

Unable to edit the page? See the FrontPage for instructions.