mirror of
https://github.com/python/cpython.git
synced 2025-09-28 11:15:17 +00:00
- use recommended Python style in examples (no spaces around "=" for
keyword args) - format multi-line calls to distutils.core.setup() consistently, and in line with general practice (one keyword arg per line, comma/newline after the last - fix a few typos
This commit is contained in:
parent
824b1b2da8
commit
630e5bd2f7
1 changed files with 83 additions and 59 deletions
136
Doc/dist/dist.tex
vendored
136
Doc/dist/dist.tex
vendored
|
@ -93,9 +93,10 @@ simple as this:
|
|||
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name="foo",
|
||||
version="1.0",
|
||||
py_modules=["foo"])
|
||||
setup(name='foo',
|
||||
version='1.0',
|
||||
py_modules=['foo'],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
Some observations:
|
||||
|
@ -270,12 +271,12 @@ shown here, is used to install the package into Python 1.5.2.)
|
|||
|
||||
from distutils.core import setup
|
||||
|
||||
setup(name="Distutils",
|
||||
version="1.0",
|
||||
description="Python Distribution Utilities",
|
||||
author="Greg Ward",
|
||||
author_email="gward@python.net",
|
||||
url="http://www.python.org/sigs/distutils-sig/",
|
||||
setup(name='Distutils',
|
||||
version='1.0',
|
||||
description='Python Distribution Utilities',
|
||||
author='Greg Ward',
|
||||
author_email='gward@python.net',
|
||||
url='http://www.python.org/sigs/distutils-sig/',
|
||||
packages=['distutils', 'distutils.command'],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
@ -409,7 +410,7 @@ additional instructions to the compiler/linker are needed, describing
|
|||
this extension is quite simple:
|
||||
|
||||
\begin{verbatim}
|
||||
uExtension("foo", ["foo.c"])
|
||||
Extension('foo', ['foo.c'])
|
||||
\end{verbatim}
|
||||
|
||||
The \class{Extension} class can be imported from
|
||||
|
@ -419,8 +420,10 @@ and nothing else might be:
|
|||
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup, Extension
|
||||
setup(name="foo", version="1.0",
|
||||
ext_modules=[Extension("foo", ["foo.c"])])
|
||||
setup(name='foo',
|
||||
version='1.0',
|
||||
ext_modules=[Extension('foo', ['foo.c'])],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
The \class{Extension} class (actually, the underlying extension-building
|
||||
|
@ -435,13 +438,13 @@ The first argument to the \class{Extension} constructor is always the
|
|||
name of the extension, including any package names. For example,
|
||||
|
||||
\begin{verbatim}
|
||||
Extension("foo", ["src/foo1.c", "src/foo2.c"])
|
||||
Extension('foo', ['src/foo1.c', 'src/foo2.c'])
|
||||
\end{verbatim}
|
||||
|
||||
describes an extension that lives in the root package, while
|
||||
|
||||
\begin{verbatim}
|
||||
Extension("pkg.foo", ["src/foo1.c", "src/foo2.c"])
|
||||
Extension('pkg.foo', ['src/foo1.c', 'src/foo2.c'])
|
||||
\end{verbatim}
|
||||
|
||||
describes the same extension in the \module{pkg} package. The source
|
||||
|
@ -455,9 +458,9 @@ to \function{setup()}. For example,
|
|||
|
||||
\begin{verbatim}
|
||||
setup(...
|
||||
ext_package="pkg",
|
||||
ext_modules=[Extension("foo", ["foo.c"]),
|
||||
Extension("subpkg.bar", ["bar.c"])]
|
||||
ext_package='pkg',
|
||||
ext_modules=[Extension('foo', ['foo.c']),
|
||||
Extension('subpkg.bar', ['bar.c'])],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
|
@ -502,7 +505,7 @@ For example, if your extension requires header files in the
|
|||
\code{include\_dirs} option:
|
||||
|
||||
\begin{verbatim}
|
||||
Extension("foo", ["foo.c"], include_dirs=["include"])
|
||||
Extension('foo', ['foo.c'], include_dirs=['include'])
|
||||
\end{verbatim}
|
||||
|
||||
You can specify absolute directories there; if you know that your
|
||||
|
@ -510,7 +513,7 @@ extension will only be built on \UNIX{} systems with X11R6 installed to
|
|||
\file{/usr}, you can get away with
|
||||
|
||||
\begin{verbatim}
|
||||
Extension("foo", ["foo.c"], include_dirs=["/usr/include/X11"])
|
||||
Extension('foo', ['foo.c'], include_dirs=['/usr/include/X11'])
|
||||
\end{verbatim}
|
||||
|
||||
You should avoid this sort of non-portable usage if you plan to
|
||||
|
@ -534,13 +537,14 @@ approach is to write C code like
|
|||
\end{verbatim}
|
||||
If you must put the \file{Numerical} include directory right into your
|
||||
header search path, though, you can find that directory using the
|
||||
Distutils \module{sysconfig} module:
|
||||
Distutils \refmodule{distutils.sysconfig} module:
|
||||
|
||||
\begin{verbatim}
|
||||
from distutils.sysconfig import get_python_inc
|
||||
incdir = os.path.join(get_python_inc(plat_specific=1), "Numerical")
|
||||
incdir = os.path.join(get_python_inc(plat_specific=1), 'Numerical')
|
||||
setup(...,
|
||||
Extension(..., include_dirs=[incdir]))
|
||||
Extension(..., include_dirs=[incdir]),
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
Even though this is quite portable---it will work on any Python
|
||||
|
@ -590,7 +594,7 @@ standard library search path on target systems
|
|||
|
||||
\begin{verbatim}
|
||||
Extension(...,
|
||||
libraries=["gdbm", "readline"])
|
||||
libraries=['gdbm', 'readline'])
|
||||
\end{verbatim}
|
||||
|
||||
If you need to link with libraries in a non-standard location, you'll
|
||||
|
@ -598,8 +602,8 @@ have to include the location in \code{library\_dirs}:
|
|||
|
||||
\begin{verbatim}
|
||||
Extension(...,
|
||||
library_dirs=["/usr/X11R6/lib"],
|
||||
libraries=["X11", "Xt"])
|
||||
library_dirs=['/usr/X11R6/lib'],
|
||||
libraries=['X11', 'Xt'])
|
||||
\end{verbatim}
|
||||
|
||||
(Again, this sort of non-portable construct should be avoided if you
|
||||
|
@ -727,10 +731,10 @@ version. This information includes:
|
|||
compatible with Python versions prior to 2.2.3 or 2.3. The list is
|
||||
available from the \ulink{PyPI website}{http://www.python.org/pypi}.
|
||||
|
||||
\item["short string"] A single line of text, not more than 200 characters.
|
||||
\item["long string"] Multiple lines of plain text in ReStructuredText
|
||||
\item['short string'] A single line of text, not more than 200 characters.
|
||||
\item['long string'] Multiple lines of plain text in reStructuredText
|
||||
format (see \url{http://docutils.sf.net/}).
|
||||
\item["list of strings"] See below.
|
||||
\item['list of strings'] See below.
|
||||
\end{description}
|
||||
|
||||
None of the string values may be Unicode.
|
||||
|
@ -780,7 +784,7 @@ setup(...
|
|||
If you wish to include classifiers in your \file{setup.py} file and also
|
||||
wish to remain backwards-compatible with Python releases prior to 2.2.3,
|
||||
then you can include the following code fragment in your \file{setup.py}
|
||||
before the \code{setup()} call.
|
||||
before the \function{setup()} call.
|
||||
|
||||
\begin{verbatim}
|
||||
# patch distutils if it can't cope with the "classifiers" or
|
||||
|
@ -1044,9 +1048,9 @@ prune examples/sample?/build
|
|||
\end{verbatim}
|
||||
|
||||
The meanings should be fairly clear: include all files in the
|
||||
distribution root matching \code{*.txt}, all files anywhere under the
|
||||
\file{examples} directory matching \code{*.txt} or \code{*.py}, and
|
||||
exclude all directories matching \code{examples/sample?/build}. All of
|
||||
distribution root matching \file{*.txt}, all files anywhere under the
|
||||
\file{examples} directory matching \file{*.txt} or \file{*.py}, and
|
||||
exclude all directories matching \file{examples/sample?/build}. All of
|
||||
this is done \emph{after} the standard include set, so you can exclude
|
||||
files from the standard set with explicit instructions in the manifest
|
||||
template. (Or, you can use the \longprogramopt{no-defaults} option to
|
||||
|
@ -1307,7 +1311,7 @@ both, you can explicitly specify multiple \command{bdist\_*} commands
|
|||
and their options:
|
||||
|
||||
\begin{verbatim}
|
||||
python setup.py bdist_rpm --packager="John Doe <jdoe@python.net>" \
|
||||
python setup.py bdist_rpm --packager="John Doe <jdoe@example.org>" \
|
||||
bdist_wininst --target_version="2.0"
|
||||
\end{verbatim}
|
||||
|
||||
|
@ -1608,8 +1612,10 @@ distribution root directory.) A minimal setup script to describe this
|
|||
situation would be:
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foo", version = "1.0",
|
||||
py_modules = ["foo"])
|
||||
setup(name='foo',
|
||||
version='1.0',
|
||||
py_modules=['foo'],
|
||||
)
|
||||
\end{verbatim}
|
||||
Note that the name of the distribution is specified independently with
|
||||
the \option{name} option, and there's no rule that says it has to be the
|
||||
|
@ -1630,8 +1636,10 @@ modules, eg. if you're distributing modules \module{foo} and
|
|||
and the setup script might be
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
py_modules = ["foo", "bar"])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
py_modules=['foo', 'bar'],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
You can put module source files into another directory, but if you have
|
||||
|
@ -1653,8 +1661,10 @@ file).
|
|||
The setup script from the last example could also be written as
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
packages = [""])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
packages=[''],
|
||||
)
|
||||
\end{verbatim}
|
||||
(The empty string stands for the root package.)
|
||||
|
||||
|
@ -1670,9 +1680,11 @@ then you would still specify the root package, but you have to tell the
|
|||
Distutils where source files in the root package live:
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
package_dir = {"": "src"},
|
||||
packages = [""])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
package_dir={'': 'src'},
|
||||
packages=[''],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
More typically, though, you will want to distribute multiple modules in
|
||||
|
@ -1691,8 +1703,10 @@ This is in fact the default layout expected by the Distutils, and the
|
|||
one that requires the least work to describe in your setup script:
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
packages = ["foobar"])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
packages=['foobar'],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
If you want to put modules in directories not named for their package,
|
||||
|
@ -1710,9 +1724,11 @@ example, if the \file{src} directory holds modules in the
|
|||
an appropriate setup script would be
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
package_dir = {"foobar" : "src"},
|
||||
packages = ["foobar"])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
package_dir={'foobar': 'src'},
|
||||
packages=['foobar'],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
Or, you might put modules from your main package right in the
|
||||
|
@ -1727,9 +1743,11 @@ distribution root:
|
|||
in which case your setup script would be
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
package_dir = {"foobar" : ""},
|
||||
packages = ["foobar"])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
package_dir={'foobar': ''},
|
||||
packages=['foobar'],
|
||||
)
|
||||
\end{verbatim}
|
||||
(The empty string also stands for the current directory.)
|
||||
|
||||
|
@ -1754,8 +1772,10 @@ sub-package:
|
|||
then the corresponding setup script would be
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
packages = ["foobar", "foobar.subfoo"])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
packages=['foobar', 'foobar.subfoo'],
|
||||
)
|
||||
\end{verbatim}
|
||||
(Again, the empty string in \option{package\_dir} stands for the current
|
||||
directory.)
|
||||
|
@ -1777,8 +1797,10 @@ If the \module{foo} extension belongs in the root package, the setup
|
|||
script for this could be
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
ext_modules = [Extension("foo", ["foo.c"])])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
ext_modules=[Extension('foo', ['foo.c'])],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
If the extension actually belongs in a package, say \module{foopkg},
|
||||
|
@ -1789,8 +1811,10 @@ the \module{foopkg} package simply by changing the name of the
|
|||
extension:
|
||||
\begin{verbatim}
|
||||
from distutils.core import setup
|
||||
setup(name = "foobar", version = "1.0",
|
||||
ext_modules = [Extension("foopkg.foo", ["foo.c"])])
|
||||
setup(name='foobar',
|
||||
version='1.0',
|
||||
ext_modules=[Extension('foopkg.foo', ['foo.c'])],
|
||||
)
|
||||
\end{verbatim}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue