Python Glossary English

все Python 3до 3.12Удалено из стандартной библиотекипонятие

distutils

удалённые модули

Старый инструмент сборки и установки пакетов (setup.py). Удалён в Python 3.12 — используйте setuptools, pip и модули sysconfig, shutil.

Синтаксис

from distutils.core import setup  # до 3.12

distutils появился до pip и колёс: setup.py с from distutils.core import setup собирал и ставил пакет. Развитие давно ушло в сторонний setuptools, поэтому PEP 632 объявил distutils устаревшим в 3.10, а в 3.12 его убрали. Как переписать: сборка пакета — pyproject.toml и setuptools (from setuptools import setup), установка — pip; distutils.sysconfig → модуль sysconfig (get_paths(), get_python_version()); distutils.spawn.find_executable → shutil.which(); distutils.dir_util.copy_tree → shutil.copytree(); LooseVersion/StrictVersion → пакет packaging (packaging.version.Version). Если установлен setuptools, import distutils может сработать — это его копия, а не стандартная библиотека.

Примеры

# Python 3.12+
import sys
print('distutils' in sys.stdlib_module_names)  # → False
# Python 3.12+
import shutil, sys, sysconfig
print(sysconfig.get_python_version() == '%d.%d' % sys.version_info[:2])  # → True
print('purelib' in sysconfig.get_paths())  # → True
print(shutil.which('no-such-program-xyz'))  # → None
from distutils.spawn import find_executable
print(find_executable('no-such-program-xyz'))  # → None

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности