mirror of https://github.com/python/cpython
239 lines
8.7 KiB
TeX
239 lines
8.7 KiB
TeX
\section{\module{platform} ---
|
|
Access to underlying platform's identifying data.}
|
|
|
|
\declaremodule{standard}{platform}
|
|
\modulesynopsis{Retrieves as much platform identifying data as possible.}
|
|
\moduleauthor{Marc-Andre Lemburg}{mal@egenix.com}
|
|
\sectionauthor{Bjorn Pettersen}{bpettersen@corp.fairisaac.com}
|
|
|
|
\versionadded{2.3}
|
|
|
|
\begin{notice}
|
|
Specific platforms listed alphabetically, with Linux included in the
|
|
\UNIX{} section.
|
|
\end{notice}
|
|
|
|
\subsection{Cross Platform}
|
|
|
|
\begin{funcdesc}{architecture}{executable=sys.executable, bits='', linkage=''}
|
|
Queries the given executable (defaults to the Python interpreter
|
|
binary) for various architecture information.
|
|
|
|
Returns a tuple \code{(bits, linkage)} which contain information about
|
|
the bit architecture and the linkage format used for the
|
|
executable. Both values are returned as strings.
|
|
|
|
Values that cannot be determined are returned as given by the
|
|
parameter presets. If bits is given as \code{''}, the
|
|
\cfunction{sizeof(pointer)}
|
|
(or \cfunction{sizeof(long)} on Python version < 1.5.2) is used as
|
|
indicator for the supported pointer size.
|
|
|
|
The function relies on the system's \file{file} command to do the
|
|
actual work. This is available on most if not all \UNIX{}
|
|
platforms and some non-\UNIX{} platforms and then only if the
|
|
executable points to the Python interpreter. Reasonable defaults
|
|
are used when the above needs are not met.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{machine}{}
|
|
Returns the machine type, e.g. \code{'i386'}.
|
|
An empty string is returned if the value cannot be determined.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{node}{}
|
|
Returns the computer's network name (may not be fully qualified!).
|
|
An empty string is returned if the value cannot be determined.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{platform}{aliased=0, terse=0}
|
|
Returns a single string identifying the underlying platform
|
|
with as much useful information as possible.
|
|
|
|
The output is intended to be \emph{human readable} rather than
|
|
machine parseable. It may look different on different platforms and
|
|
this is intended.
|
|
|
|
If \var{aliased} is true, the function will use aliases for various
|
|
platforms that report system names which differ from their common
|
|
names, for example SunOS will be reported as Solaris. The
|
|
\function{system_alias()} function is used to implement this.
|
|
|
|
Setting \var{terse} to true causes the function to return only the
|
|
absolute minimum information needed to identify the platform.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{processor}{}
|
|
Returns the (real) processor name, e.g. \code{'amdk6'}.
|
|
|
|
An empty string is returned if the value cannot be determined. Note
|
|
that many platforms do not provide this information or simply return
|
|
the same value as for \function{machine()}. NetBSD does this.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{python_build}{}
|
|
Returns a tuple \code{(\var{buildno}, \var{builddate})} stating the
|
|
Python build number and date as strings.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{python_compiler}{}
|
|
Returns a string identifying the compiler used for compiling Python.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{python_branch}{}
|
|
Returns a string identifying the Python implementation SCM branch.
|
|
\versionadded{2.6}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{python_implementation}{}
|
|
Returns a string identifying the Python implementation.
|
|
Possible return values are: 'CPython', 'IronPython', 'Jython'
|
|
\versionadded{2.6}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{python_revision}{}
|
|
Returns a string identifying the Python implementation SCM revision.
|
|
\versionadded{2.6}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{python_version}{}
|
|
Returns the Python version as string \code{'major.minor.patchlevel'}
|
|
|
|
Note that unlike the Python \code{sys.version}, the returned value
|
|
will always include the patchlevel (it defaults to 0).
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{python_version_tuple}{}
|
|
Returns the Python version as tuple \code{(\var{major}, \var{minor},
|
|
\var{patchlevel})} of strings.
|
|
|
|
Note that unlike the Python \code{sys.version}, the returned value
|
|
will always include the patchlevel (it defaults to \code{'0'}).
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{release}{}
|
|
Returns the system's release, e.g. \code{'2.2.0'} or \code{'NT'}
|
|
An empty string is returned if the value cannot be determined.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{system}{}
|
|
Returns the system/OS name, e.g. \code{'Linux'}, \code{'Windows'},
|
|
or \code{'Java'}.
|
|
An empty string is returned if the value cannot be determined.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{system_alias}{system, release, version}
|
|
Returns \code{(\var{system}, \var{release}, \var{version})} aliased
|
|
to common marketing names used for some systems. It also does some
|
|
reordering of the information in some cases where it would otherwise
|
|
cause confusion.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{version}{}
|
|
Returns the system's release version, e.g. \code{'\#3 on degas'}.
|
|
An empty string is returned if the value cannot be determined.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{uname}{}
|
|
Fairly portable uname interface. Returns a tuple of strings
|
|
\code{(\var{system}, \var{node}, \var{release}, \var{version},
|
|
\var{machine}, \var{processor})} identifying the underlying
|
|
platform.
|
|
|
|
Note that unlike the \function{os.uname()} function this also returns
|
|
possible processor information as additional tuple entry.
|
|
|
|
Entries which cannot be determined are set to \code{''}.
|
|
\end{funcdesc}
|
|
|
|
|
|
\subsection{Java Platform}
|
|
|
|
\begin{funcdesc}{java_ver}{release='', vendor='', vminfo=('','',''),
|
|
osinfo=('','','')}
|
|
Version interface for JPython.
|
|
|
|
Returns a tuple \code{(\var{release}, \var{vendor}, \var{vminfo},
|
|
\var{osinfo})} with \var{vminfo} being a tuple \code{(\var{vm_name},
|
|
\var{vm_release}, \var{vm_vendor})} and \var{osinfo} being a tuple
|
|
\code{(\var{os_name}, \var{os_version}, \var{os_arch})}.
|
|
Values which cannot be determined are set to the defaults
|
|
given as parameters (which all default to \code{''}).
|
|
\end{funcdesc}
|
|
|
|
|
|
\subsection{Windows Platform}
|
|
|
|
\begin{funcdesc}{win32_ver}{release='', version='', csd='', ptype=''}
|
|
Get additional version information from the Windows Registry
|
|
and return a tuple \code{(\var{version}, \var{csd}, \var{ptype})}
|
|
referring to version number, CSD level and OS type (multi/single
|
|
processor).
|
|
|
|
As a hint: \var{ptype} is \code{'Uniprocessor Free'} on single
|
|
processor NT machines and \code{'Multiprocessor Free'} on multi
|
|
processor machines. The \emph{'Free'} refers to the OS version being
|
|
free of debugging code. It could also state \emph{'Checked'} which
|
|
means the OS version uses debugging code, i.e. code that
|
|
checks arguments, ranges, etc.
|
|
|
|
\begin{notice}[note]
|
|
This function only works if Mark Hammond's \module{win32all}
|
|
package is installed and (obviously) only runs on Win32
|
|
compatible platforms.
|
|
\end{notice}
|
|
\end{funcdesc}
|
|
|
|
\subsubsection{Win95/98 specific}
|
|
|
|
\begin{funcdesc}{popen}{cmd, mode='r', bufsize=None}
|
|
Portable \function{popen()} interface. Find a working popen
|
|
implementation preferring \function{win32pipe.popen()}. On Windows
|
|
NT, \function{win32pipe.popen()} should work; on Windows 9x it hangs
|
|
due to bugs in the MS C library.
|
|
% This KnowledgeBase article appears to be missing...
|
|
%See also \ulink{MS KnowledgeBase article Q150956}{}.
|
|
\end{funcdesc}
|
|
|
|
|
|
\subsection{Mac OS Platform}
|
|
|
|
\begin{funcdesc}{mac_ver}{release='', versioninfo=('','',''), machine=''}
|
|
Get Mac OS version information and return it as tuple
|
|
\code{(\var{release}, \var{versioninfo}, \var{machine})} with
|
|
\var{versioninfo} being a tuple \code{(\var{version},
|
|
\var{dev_stage}, \var{non_release_version})}.
|
|
|
|
Entries which cannot be determined are set to \code{''}. All tuple
|
|
entries are strings.
|
|
|
|
Documentation for the underlying \cfunction{gestalt()} API is
|
|
available online at \url{http://www.rgaros.nl/gestalt/}.
|
|
\end{funcdesc}
|
|
|
|
|
|
\subsection{\UNIX{} Platforms}
|
|
|
|
\begin{funcdesc}{dist}{distname='', version='', id='',
|
|
supported_dists=('SuSE','debian','redhat','mandrake')}
|
|
Tries to determine the name of the OS distribution name
|
|
Returns a tuple \code{(\var{distname}, \var{version}, \var{id})}
|
|
which defaults to the args given as parameters.
|
|
\end{funcdesc}
|
|
|
|
% Document linux_distribution()?
|
|
|
|
\begin{funcdesc}{libc_ver}{executable=sys.executable, lib='',
|
|
version='', chunksize=2048}
|
|
Tries to determine the libc version against which the file
|
|
executable (defaults to the Python interpreter) is linked. Returns
|
|
a tuple of strings \code{(\var{lib}, \var{version})} which default
|
|
to the given parameters in case the lookup fails.
|
|
|
|
Note that this function has intimate knowledge of how different
|
|
libc versions add symbols to the executable is probably only
|
|
useable for executables compiled using \program{gcc}.
|
|
|
|
The file is read and scanned in chunks of \var{chunksize} bytes.
|
|
\end{funcdesc}
|