Базовые пакеты 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