Differences between revisions 6 and 56 (spanning 50 versions)
Revision 6 as of 2006-01-20 02:04:27
Size: 970
Editor: ool-43564de5
Comment:
Revision 56 as of 2015-11-21 15:09:39
Size: 4239
Editor: NickCoghlan
Comment: Direct readers to PyPUG & PyPA
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
"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 ==
Line 3: Line 3:
Documentation:
 * [http://docs.python.org/dist/dist.html Distributing Python Modules] - information for developers
 * [http://docs.python.org/inst/inst.html Installing Python Modules] - information for users and system administrators
 * [http://www.python.org/sigs/distutils-sig/ distutils SIG]
 * [http://www.mechanicalcat.net/tech/pypi/pypi-xmlrpc.html PyPI's XML-RPC interface] for querying the packages database
Distutils is a mechanism to distribute Python packages and extensions provided in the Python standard library since Python 1.6.
Line 9: Line 5:
Projects:
 * DistutilsProjects - please add a listing to this page if you're working on Distutils (and help us reduce duplication of effort)
=== Current status ===
Line 12: Line 7:
DistUtilsExtensions is a repository of extensions for your "setup.py". Maintenance of the Python packaging ecosystem has largely moved away from the standard library and the CPython core development team and is now being handled by distutils-sig and the Python Packaging Authority.

 * For up to date user focused documentation, refer to the Python Packaging User Guide: https://packaging.python.org
 * For more details on the Python Packaging Authority, its goals, and current activities: https://www.pypa.io

{{{#!wiki caution
The rest of this page and its subpages relate to a previous attempt at improving the Python packaging ecosystem, known as distutils2. Much of it can likely be deleted, but it should be reviewed first to see if any of it should be preserved.
}}}
Line 15: Line 17:
'''Q.''' ''How can you use distutils (i.e., your setup.py file) to '''un'''install a given package?'' == Historical distutils2 focused content ==

 * [[Distutils/DiscussionOverview]]
 * plugin systems, entry points
 * static metadata
 * testing infrastructure

=== Past distutils2 work ===
 * [[Distutils/Terminology]]: New terminology
 * [[Distutils/VersionComparison]] : the goal is to come up with a version comparison system that superseds Distutils' current one
 * [[Distutils/StandardizeEggInfo]] : the goal is to finalize PEP 376
 * [[Distutils/Metadata]] : the goal is to finalize PEP 345
 * [[Distutils/StaticMetadata]] : the goal is to come out with a proposal to split setup.py into a static metadata file + a lighter,
 almost empty script.
 * [[Distutils/Friends]] : the goal is to try to find a project, a person or a group of person on each platform that is willing
 to maintain a third-party tool that build system-specific distros out of python package.
 * [[Distutils/PluginSystem]] : a Plugin system to extend commands
 * [[Distutils/TestingInfrastructure]] : Testing infrastructure

=== Learning Distutils ===

==== Documentation ====
 * [[http://docs.python.org/library/distutils.html|distutils — Building and installing Python modules]]
  * [[http://docs.python.org/distutils/|Distributing Python Modules]] - information for developers
  * [[http://docs.python.org/install/|Installing Python Modules]] - information for users and system administrators
 * [[http://www.python.org/sigs/distutils-sig/|distutils SIG]]
 * [[http://wiki.python.org/moin/PyPiXmlRpc|PyPI's XML-RPC interface]] for querying the packages database

 * [[/Cookbook]]
 * [[/FAQ]]
==== 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 ====
 * [[/Tutorial]] is a small tutorial to introduce the topic. It includes a complete demo, from start to finish.
 * CheeseShopTutorial is a related tutorial that just covers submitting information to the [[http://pypi.python.org/pypi|Python Package Index]]
 * [[http://www.python.org/~jeremy/weblog/030924.html|Python Package Index Tutorial]] by Jeremy Hylton covers the use of the distutils register command.

==== 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.

==== Misc. ====

[[Distutils/DistributeSprint]] : Sprint ideas

[[/Proposals]]

#distutils - irc channel for Distutils

Distutils

Distutils is a mechanism to distribute Python packages and extensions provided in the Python standard library since Python 1.6.

Current status

Maintenance of the Python packaging ecosystem has largely moved away from the standard library and the CPython core development team and is now being handled by distutils-sig and the Python Packaging Authority.

The rest of this page and its subpages relate to a previous attempt at improving the Python packaging ecosystem, known as distutils2. Much of it can likely be deleted, but it should be reviewed first to see if any of it should be preserved.


Historical distutils2 focused content

Past distutils2 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.

Distutils/DistributeSprint : Sprint ideas

/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.