Фреймворк для тестирования Python: помогает писать небольшие тесты и подходит для сложного функционального тестирования приложений и библиотек.
- Звёзды
- 8,662
- Форки
- 501
- Открытые issues
- 48
- Последний коммит
- вчера
Что это?
PDM — менеджер пакетов и зависимостей Python. Он читает метаданные проекта из стандартного файла pyproject.toml и записывает lockfile, фиксирующий точные версии зависимостей. PDM умеет создавать виртуальные окружения и управлять ими как в каталоге проекта, так и в централизованном расположении — подобно Pipenv. Также он собирает wheels и дистрибутивы с исходным кодом и загружает их в PyPI — подобно Poetry.
В PDM есть backend сборки PEP 517, но проект не привязан к одному backend — можно выбрать любой подходящий. Функциональность расширяется с помощью системы плагинов; также поддерживаются пользовательские скрипты. Кроме того, PDM может устанавливать интерпретаторы Python с помощью python-build-standalone и предлагает централизованный кэш установки, использование которого нужно включить отдельно.
В PDM есть экспериментальная поддержка PEP 582 (установка пакетов в локальную папку __pypackages__ вместо venv), а также возможность использовать uv в качестве установщика.
Ключевые возможности
- 01Разрешение зависимостей с поддержкой lockfile pdm.lock
- 02Управление виртуальными окружениями в каталоге проекта или централизованном расположении
- 03Поддержка backend сборки PEP 517 и метаданных проекта PEP 621
- 04Система плагинов и пользовательские скрипты
- 05Установка интерпретаторов Python с помощью python-build-standalone
- 06Централизованный кэш установки, который можно включить отдельно
Сценарии использования
- Управление зависимостями и виртуальными окружениями Python-приложения
- Сборка и публикация библиотеки Python в PyPI с использованием стандартных метаданных pyproject.toml
- Переход с Pipenv или Poetry на рабочий процесс на основе PEP 621
Быстрый старт
- 1
Установить PDM с помощью скрипта установки (Linux/Mac)
curl -sSL https://pdm-project.org/install.sh | bash - 2
Создать новый проект PDM
pdm new my-project - 3
Добавить зависимости в проект
pdm add requests flask
Что важно знать
- Требуется Python 3.10 или выше.
- Интеграции с PEP 582 и uv отмечены как экспериментальные.
- uv не работает с PEP 582.
Темы
Частые вопросы
- Что такое pdm?
- Современный менеджер пакетов и зависимостей Python для управления venv, lockfile и сборками на основе метаданных PEP 621 и PEP 517. PDM — менеджер пакетов и зависимостей Python. Он читает метаданные проекта из стандартного файла pyproject.toml и записывает lockfile, фиксирующий точные версии зависимостей. PDM умеет создавать виртуальные окружения и управлять ими как в каталоге проекта, так и в централизованном расположении — подобно Pipenv. Также он собирает wheels и дистрибутивы с исходным кодом и загружает их в PyPI — подобно Poetry.
- pdm можно использовать бесплатно? Какая у него лицензия?
- pdm распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pdm всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pdm — 19 окт. 2026 г..
- Для чего можно использовать pdm?
- Управление зависимостями и виртуальными окружениями Python-приложения Сборка и публикация библиотеки Python в PyPI с использованием стандартных метаданных pyproject.toml Переход с Pipenv или Poetry на рабочий процесс на основе PEP 621
- Как установить pdm?
- Установить PDM с помощью скрипта установки (Linux/Mac): curl -sSL https://pdm-project.org/install.sh | bash Создать новый проект PDM: pdm new my-project Добавить зависимости в проект: pdm add requests flask
- Где скачать pdm?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pdm-project/pdm
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Система управления запасами с открытым исходным кодом: контроль складских остатков, учёт деталей, REST API и система плагинов на Python и Django.
Самостоятельно размещаемый трекер тренировок, питания и веса с открытым исходным кодом на Django, REST API и мобильными приложениями.
Клиентская библиотека Python для Kubernetes с API, построенным по образцу kubectl, и синхронным и асинхронным интерфейсами (asyncio/trio).
Бета-утилита на Python для создания загрузочных USB-накопителей из ISO-образов в Linux, вдохновлённая Rufus для Windows.
Платформа с открытым исходным кодом для разработки приложений на базе LLM: визуальные агентные сценарии, RAG-пайплайны, управление моделями и мониторинг в одном рабочем пространстве.