{"id":13461674,"url":"https://github.com/pdm-project/pdm","last_synced_at":"2025-12-24T02:42:27.647Z","repository":{"id":36974532,"uuid":"230369286","full_name":"pdm-project/pdm","owner":"pdm-project","description":"A modern Python package and dependency manager supporting the latest PEP standards","archived":false,"fork":false,"pushed_at":"2025-05-05T20:23:11.000Z","size":13510,"stargazers_count":8365,"open_issues_count":51,"forks_count":437,"subscribers_count":39,"default_branch":"main","last_synced_at":"2025-05-05T20:50:48.819Z","etag":null,"topics":["hacktoberfest","package-manager","packaging","pep582","pep621","python","workflow"],"latest_commit_sha":null,"homepage":"https://pdm-project.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pdm-project.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["pdm-project","frostming"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null}},"created_at":"2019-12-27T03:50:57.000Z","updated_at":"2025-05-05T03:15:25.000Z","dependencies_parsed_at":"2023-01-17T11:01:52.361Z","dependency_job_id":"eb7c304c-1596-4ab0-aa39-c52afde23c64","html_url":"https://github.com/pdm-project/pdm","commit_stats":{"total_commits":2688,"total_committers":212,"mean_commits":"12.679245283018869","dds":0.2109375,"last_synced_commit":"de3ab412011fcfbf127923810c3a1c6eb4fb7766"},"previous_names":[],"tags_count":226,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdm-project%2Fpdm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdm-project%2Fpdm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdm-project%2Fpdm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdm-project%2Fpdm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdm-project","download_url":"https://codeload.github.com/pdm-project/pdm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253611672,"owners_count":21935941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","package-manager","packaging","pep582","pep621","python","workflow"],"created_at":"2024-07-31T11:00:52.003Z","updated_at":"2025-12-24T02:42:27.640Z","avatar_url":"https://github.com/pdm-project.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n\n# PDM\n\nA modern Python package and dependency manager supporting the latest PEP standards.\n[中文版本说明](README_zh.md)\n\n![PDM logo](https://raw.githubusercontent.com/pdm-project/pdm/main/docs/assets/logo_big.png)\n\n[![Docs](https://img.shields.io/badge/Docs-mkdocs-blue?style=for-the-badge)](https://pdm-project.org)\n[![Twitter Follow](https://img.shields.io/twitter/follow/pdm_project?label=get%20updates\u0026logo=twitter\u0026style=for-the-badge)](https://twitter.com/pdm_project)\n[![Discord](https://img.shields.io/discord/824472774965329931?label=discord\u0026logo=discord\u0026style=for-the-badge)](https://discord.gg/Phn8smztpv)\n\n![Github Actions](https://github.com/pdm-project/pdm/workflows/Tests/badge.svg)\n[![PyPI](https://img.shields.io/pypi/v/pdm?logo=python\u0026logoColor=%23cccccc)](https://pypi.org/project/pdm)\n[![codecov](https://codecov.io/gh/pdm-project/pdm/branch/main/graph/badge.svg?token=erZTquL5n0)](https://codecov.io/gh/pdm-project/pdm)\n[![Packaging status](https://repology.org/badge/tiny-repos/pdm.svg)](https://repology.org/project/pdm/versions)\n[![Downloads](https://pepy.tech/badge/pdm/week)](https://pepy.tech/project/pdm)\n[![pdm-managed](https://img.shields.io/endpoint?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fpdm-project%2F.github%2Fbadge.json)](https://pdm-project.org)\n\u003ca href=\"https://trackgit.com\"\u003e\n\u003cimg src=\"https://us-central1-trackgit-analytics.cloudfunctions.net/token/ping/l4eztudjnh9bfay668fl\" alt=\"trackgit-views\" /\u003e\n\u003c/a\u003e\n\n[![asciicast](https://asciinema.org/a/jnifN30pjfXbO9We2KqOdXEhB.svg)](https://asciinema.org/a/jnifN30pjfXbO9We2KqOdXEhB)\n\n\u003c/div\u003e\n\n## What is PDM?\n\nPDM is meant to be a next generation Python package management tool.\nIt was originally built for personal use. If you feel you are going well\nwith `Pipenv` or `Poetry` and don't want to introduce another package manager,\njust stick to it. But if you are missing something that is not present in those tools,\nyou can probably find some goodness in `pdm`.\n\n## Highlights of features\n\n- Simple and fast dependency resolver, mainly for large binary distributions.\n- A [PEP 517] build backend.\n- [PEP 621] project metadata.\n- Flexible and powerful plug-in system.\n- Versatile user scripts.\n- Install Pythons using [astral-sh's python-build-standalone](https://github.com/astral-sh/python-build-standalone).\n- Opt-in centralized installation cache like [pnpm](https://pnpm.io/motivation#saving-disk-space-and-boosting-installation-speed).\n\n[pep 517]: https://www.python.org/dev/peps/pep-0517\n[pep 621]: https://www.python.org/dev/peps/pep-0621\n[pnpm]: https://pnpm.io/motivation#saving-disk-space-and-boosting-installation-speed\n\n## Comparisons to other alternatives\n\n### [Pipenv](https://pipenv.pypa.io)\n\nPipenv is a dependency manager that combines `pip` and `venv`, as the name implies.\nIt can install packages from a non-standard `Pipfile.lock` or `Pipfile`.\nHowever, Pipenv does not handle any packages related to packaging your code,\nso it’s useful only for developing non-installable applications (Django sites, for example).\nIf you’re a library developer, you need `setuptools` anyway.\n\n### [Poetry](https://python-poetry.org)\n\nPoetry manages environments and dependencies in a similar way to Pipenv,\nbut it can also build .whl files with your code, and it can upload wheels and source distributions to PyPI.\nIt has a pretty user interface and users can customize it via a plugin. Poetry uses the `pyproject.toml` standard.\n\n### [Hatch](https://hatch.pypa.io)\n\nHatch can also manage environments, allowing multiple environments per project. By default it has a central location for all environments but it can be configured to put a project's environment(s) in the project root directory. It can manage packages but without lockfile support. It can also be used to package a project (with PEP 621 compliant pyproject.toml files) and upload it to PyPI.\n\n### This project\n\nPDM can manage virtual environments (venvs) in both project and centralized locations, similar to Pipenv. It reads project metadata from a standardized `pyproject.toml` file and supports lockfiles. Users can add additional functionality through plugins, which can be shared by uploading them as distributions.\n\nUnlike Poetry and Hatch, PDM is not limited to a specific build backend; users have the freedom to choose any build backend they prefer.\n\n## Installation\n\n\u003ca href=\"https://repology.org/project/pdm/versions\"\u003e\n    \u003cimg src=\"https://repology.org/badge/vertical-allrepos/pdm.svg\" alt=\"Packaging status\" align=\"right\"\u003e\n\u003c/a\u003e\n\nPDM requires python version 3.9 or higher. Alternatively, you can download the standalone binary file from the [release assets](https://github.com/pdm-project/pdm/releases).\n\n### Install Binary via Script (recommended)\n\nInstall the standalone binary directly with the installer scripts:\n\n**For Linux/Mac**\n\n```bash\ncurl -sSL https://pdm-project.org/install.sh | bash\n```\n\n**For Windows**\n\n```powershell\npowershell -ExecutionPolicy ByPass -c \"irm https://pdm-project.org/install.ps1 | iex\"\n```\n\nFor alternative installation methods (Python script, package managers, etc.), see the [installation section in documentation](https://pdm-project.org/en/latest/#installation).\n\n## Quickstart\n\n**Create a new PDM project**\n\n```bash\npdm new my-project\n```\n\nAnswer the questions following the guide, and a PDM project with a `pyproject.toml` file will be ready to use.\n\n**Install dependencies**\n\n```bash\npdm add requests flask\n```\n\nYou can add multiple dependencies in the same command. After a while, check the `pdm.lock` file to see what is locked for each package.\n\n## Badges\n\nTell people you are using PDM in your project by including the markdown code in README.md:\n\n```markdown\n[![pdm-managed](https://img.shields.io/endpoint?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fpdm-project%2F.github%2Fbadge.json)](https://pdm-project.org)\n```\n\n[![pdm-managed](https://img.shields.io/endpoint?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fpdm-project%2F.github%2Fbadge.json)](https://pdm-project.org)\n\n## PDM Eco-system\n\n[Awesome PDM](https://github.com/pdm-project/awesome-pdm) is a curated list of awesome PDM plugins and resources.\n\n## Sponsors\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://cdn.jsdelivr.net/gh/pdm-project/sponsors/sponsors.svg\"\u003e\n        \u003cimg src=\"https://cdn.jsdelivr.net/gh/pdm-project/sponsors/sponsors.svg\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## Credits\n\nThis project is strongly inspired by [pyflow] and [poetry].\n\n[pyflow]: https://github.com/David-OConnor/pyflow\n[poetry]: https://github.com/python-poetry/poetry\n\n## License\n\nThis project is open sourced under MIT license, see the [LICENSE](LICENSE) file for more details.\n","funding_links":["https://github.com/sponsors/pdm-project","https://github.com/sponsors/frostming"],"categories":["Python","python","Package Management","Python 程序","workflow","Version-Switch-Tools","Dependency \u0026 Package Managers","Project build / Dependency management","hacktoberfest"],"sub_categories":["For Python","网络服务_其他"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdm-project%2Fpdm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdm-project%2Fpdm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdm-project%2Fpdm/lists"}