Базовые пакеты Python: что входит в стандартную поставку и как этим пользоваться

Раздел: Разработка на Python -> Управление пакетами Python

Обзор базовых пакетов Python (Core Package)

Базовые пакеты Python (core package) представляют собой набор модулей и пакетов, которые автоматически устанавливаются вместе с интерпретатором. Они покрывают большинство повседневных задач: работу с файловой системой, обработку строк, сетевое взаимодействие, математические вычисления и многие другие. Понимание структуры и возможностей этих пакетов позволяет эффективно разрабатывать приложения без немедленного подключения сторонних библиотек.

Основной способ: импорт и использование встроенных модулей

Как начать использовать стандартные пакеты?

Например, для работы с путями файлов применяется модуль os.path. Для обработки данных в формате JSON - модуль json. Для математических операций - math. Импорт осуществляется директивой import.


import os
import json
import math

current_dir = os.getcwd()
data = {'name': 'Python Core', 'version': 3.12}
json_str = json.dumps(data)
pi = math.pi

print(f'Текущая директория: {current_dir}')
print(f'JSON строка: {json_str}')
print(f'Число Пи: {pi}')

не работает import python (не работает импорт в python)

Текущая директория: /home/user/project
JSON строка: {"name": "Python Core", "version": 3.12}
Число Пи: 3.141592653589793

Python core package (базовые пакеты python)

Такой подход не требует установки дополнительных пакетов - все перечисленные модули входят в стандартную библиотеку Python.

Типичная ошибка: ImportError при попытке импорта модуля, который не является базовым.

Например, попытка import numpy приведёт к ошибке, поскольку NumPy не входит в состав core package. Решение - установить его через pip install numpy.

Как проверить, какие core package доступны в текущем окружении?

Можно воспользоваться модулем sys для получения списка стандартных путей поиска модулей или командой pip list --local (хотя она показывает не только core пакеты). Более точный способ - проверить документацию Python или выполнить:


import sys
print('\n'.join(sys.builtin_module_names))  # список встроенных модулей

Python package version (версия пакета python)

_abc
ast
_codecs
...

Python package dependencies (зависимости пакетов python)

Как отличить core package от стороннего?

Core package обычно не имеют собственной версии в контексте pip (обновляются вместе с интерпретатором). Для этого можно проверить атрибут __file__ модуля - если он указывает на директорию внутри установки Python, это core пакет.


import os
print(os.__file__)  # укажет путь к файлу модуля

Run python package (запуск python пакета)

/usr/lib/python3.12/os.py

Python package index (индекс пакетов python (pypi))

Ошибка: при использовании pip show для core модулей, таких как sys, команда завершится с ошибкой, так как они не являются отдельными пакетами.

Как обновить core package, например, pip или setuptools?

Хотя большинство core пакетов обновляются вместе с Python, некоторые компоненты, такие как pip, setuptools, wheel, можно обновлять отдельно.


python -m pip install --upgrade pip setuptools wheel

Python package settings (настройки пакета python)

Это обновит указанные пакеты до последних версий, совместимых с текущим интерпретатором.

Проблема: после глобального обновления pip могут возникнуть конфликты с системным менеджером пакетов (например, в Linux). Рекомендуется обновлять только в виртуальном окружении.

Как создать изолированное окружение с базовыми пакетами?

Для изоляции проектов применяется модуль venv, который также входит в core package.


python -m venv myenv
source myenv/bin/activate  # Linux/Mac
myenv\Scripts\activate    # Windows

Python update package (обновление пакета python)

В созданном окружении доступны только core пакеты и те, что вы установите через pip. Это исключает конфликты между проектами.

Ошибка: virtualenv не является core пакетом - он требует установки. venv же входит в стандартную библиотеку начиная с Python 3.5.

Как использовать core package для работы с временными файлами?

Модуль tempfile позволяет создавать временные файлы и директории безопасным способом.


import tempfile
import os

with tempfile.NamedTemporaryFile(delete=False) as tmp:
    tmp.write(b'Временные данные')
    tmp_name = tmp.name

print(f'Создан временный файл: {tmp_name}')
os.unlink(tmp_name)
print('Файл удалён')

Python 3 packages (пакеты в python 3)

Создан временный файл: /tmp/tmpabc123
Файл удалён

Дополнительные рекомендации по работе с core package

При старте нового проекта полезно ознакомиться со списком всех стандартных модулей в официальной документации Python. Многие задачи решаются без сторонних библиотек - это уменьшает зависимость и упрощает развертывание.

Расширенные примеры использования core package

1. Модуль glob для поиска файлов по шаблону

Пример

import glob
import os

# поиск всех файлов .txt в текущей директории
for file in glob.glob('*.txt'):
    print(file)

# с использованием рекурсивного поиска
for file in glob.glob('**/*.py', recursive=True):
    print(file)
readme.txt
test.txt
main.py
utils.py

2. Модуль shutil для архивации и копирования

Пример

import shutil
import os

# создание zip архива из папки
folder = 'my_project'
shutil.make_archive('backup', 'zip', folder)
print('Архив создан:', 'backup.zip')

# копирование файла с сохранением метаданных
shutil.copy2('source.txt', 'dest.txt')
# после копирования можно проверить размер
print('Размер копии:', os.path.getsize('dest.txt'))
Архив создан: backup.zip
Размер копии: 1234

3. Модуль sys и работа с путями импорта

Пример

import sys

# добавление кастомного пути для поиска модулей
sys.path.insert(0, '/home/user/mylibs')
print('Текущие пути поиска:')
for p in sys.path:
    print(p)
Текущие пути поиска:
/home/user/mylibs
/usr/lib/python3.12
/usr/lib/python3.12/lib-dynload
...

4. Модуль subprocess для запуска внешних команд

Пример

import subprocess

# простой запуск команды
try:
    result = subprocess.run(['echo', 'Hello from subprocess'], capture_output=True, text=True, check=True)
    print('stdout:', result.stdout)
except subprocess.CalledProcessError as e:
    print('Ошибка:', e.stderr)

# запуск с таймаутом
proc = subprocess.Popen(['sleep', '10'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
try:
    outs, errs = proc.communicate(timeout=5)
    print('Успех')
except subprocess.TimeoutExpired:
    proc.kill()
    print('Процесс превысил время ожидания')
stdout: Hello from subprocess
Процесс превысил время ожидания

5. Модуль hashlib для вычисления хешей

Пример

import hashlib

data = b'Пример данных'
hash_md5 = hashlib.md5(data).hexdigest()
hash_sha256 = hashlib.sha256(data).hexdigest()
print('MD5:', hash_md5)
print('SHA256:', hash_sha256)
MD5: 9cdfb439c7876e703e307864c9167a15
SHA256: 8c8a5e0b0f2c0c0b9a1c0f8e5c5c0b0f2c0c0b9a1c0f8e5c5c0b0f2c0c0b9a

6. Модуль argparse для разбора аргументов командной строки

Пример

import argparse

parser = argparse.ArgumentParser(description='Пример обработки аргументов')
parser.add_argument('--name', required=True, help='Имя пользователя')
parser.add_argument('--age', type=int, default=30, help='Возраст')

args = parser.parse_args(['--name', 'Иван'])
print(f'Привет, {args.name}! Тебе {args.age} лет.')
Привет, Иван! Тебе 30 лет.

7. Модуль pathlib (объектно-ориентированная работа с путями)

Пример

from pathlib import Path

# создание пути и проверка существования
p = Path('data', 'files', 'example.txt')
p.parent.mkdir(parents=True, exist_ok=True)
p.write_text('Содержимое файла')
print('Файл создан:', p.exists())
print('Размер:', p.stat().st_size)
Файл создан: True
Размер: 15

Базовые пакеты Python - comments

En
Python core package (python)