Содержание страницы
Введение¶Introduction
«Библиотека Python» содержит несколько различных видов компонентов.
В неё входят типы данных, которые обычно считаются частью «ядра» языка, например числа и списки. Для этих типов ядро языка определяет форму литералов и накладывает некоторые ограничения на их семантику, но не определяет семантику полностью. (С другой стороны, ядро языка определяет синтаксические свойства, такие как написание и приоритет операторов.)
Библиотека также содержит встроенные функции и исключения – объекты, которые могут использоваться любым кодом Python без необходимости в инструкции import. Некоторые из них определены ядром языка, но многие не являются обязательными для базовой семантики и описаны только здесь.
Однако основную часть библиотеки составляет набор модулей. Этот набор можно классифицировать по-разному. Некоторые модули написаны на C и встроены в интерпретатор Python; другие написаны на Python и импортируются в виде исходного кода. Одни модули предоставляют интерфейсы, специфичные для Python, например вывод трассировки стека; другие – интерфейсы, специфичные для конкретных операционных систем, такие как доступ к определённому оборудованию; третьи – интерфейсы для конкретных прикладных областей, например Всемирной паутины. Некоторые модули доступны во всех версиях и портах Python; другие доступны только при поддержке или требовании со стороны базовой системы; третьи – только если при компиляции и установке Python была выбрана соответствующая опция конфигурации.
Данное руководство организовано «изнутри наружу»: сначала описываются встроенные функции, типы данных и исключения, а затем модули, сгруппированные по главам родственных модулей.
This means that if you start reading this manual from the start, and skip to the
next chapter when you get bored, you will get a reasonable overview of the
available modules and application areas that are supported by the Python
library. Of course, you don’t have to read it like a novel – you can also
browse the table of contents (in front of the manual), or look for a specific
function, module or term in the index (in the back). And finally, if you enjoy
learning about random subjects, you choose a random page number (see module
random) and read a section or two. Regardless of the order in which you
read the sections of this manual, it helps to start with chapter
Built-in Functions, as the remainder of the manual assumes familiarity with
this material.
Итак, представление начинается!
Примечания о доступности¶Notes on availability
Примечание «Доступность: Unix» означает, что эта функция обычно встречается в системах Unix. Оно не утверждает о её существовании в конкретной операционной системе.
Если не указано иное, все функции, для которых заявлена «Доступность: Unix», поддерживаются в macOS, которая основана на ядре Unix.
If an availability note contains both a minimum Kernel version and a minimum libc version, then both conditions must hold. For example a feature with note Availability: Linux >= 3.17 with glibc >= 2.27 requires both Linux 3.17 or newer and glibc 2.27 or newer.
Платформы WebAssembly¶WebAssembly platforms
The WebAssembly platforms wasm32-emscripten (Emscripten) and
wasm32-wasi (WASI) provide a subset of POSIX APIs. WebAssembly runtimes
and browsers are sandboxed and have limited access to the host and external
resources. Any Python standard library module that uses processes, threading,
networking, signals, or other forms of inter-process communication (IPC), is
either not available or may not work as on other Unix-like systems. File I/O,
file system, and Unix permission-related functions are restricted, too.
Emscripten does not permit blocking I/O. Other blocking operations like
sleep() block the browser event loop.
The properties and behavior of Python on WebAssembly platforms depend on the Emscripten-SDK or WASI-SDK version, WASM runtimes (browser, NodeJS, wasmtime), and Python build time flags. WebAssembly, Emscripten, and WASI are evolving standards; some features like networking may be supported in the future.
For Python in the browser, users should consider Pyodide or PyScript.
PyScript is built on top of Pyodide, which itself is built on top of
CPython and Emscripten. Pyodide provides access to browsers’ JavaScript and
DOM APIs as well as limited networking capabilities with JavaScript’s
XMLHttpRequest and Fetch APIs.
API, связанные с процессами, недоступны или всегда завершаются ошибкой. Сюда входят API для порождения новых процессов (
fork(),execve()), ожидания процессов (waitpid()), отправки сигналов (kill()) или иного взаимодействия с процессами. Модульsubprocessимпортируется, но не работает.The
socketmodule is available, but is limited and behaves differently from other platforms. On Emscripten, sockets are always non-blocking and require additional JavaScript code and helpers on the server to proxy TCP through WebSockets; see Emscripten Networking for more information. WASI snapshot preview 1 only permits sockets from an existing file descriptor.Некоторые функции являются заглушками, которые либо ничего не делают и всегда возвращают жёстко заданные значения.
Функции, связанные с файловыми дескрипторами, правами доступа к файлам, владельцами файлов и ссылками, ограничены и не поддерживают некоторые операции. Например, WASI не разрешает символические ссылки с абсолютными именами файлов.