# Python Development Tooling How-To Guides


How-to guides answer specific questions for someone already past the basics. Each page solves one task and gets out of the way.

If the tool is unfamiliar, start with a [Tutorial]({{< ref "handbook/Tutorial/" >}}). For technical detail on a specific tool, see [Reference]({{< ref "handbook/Reference/" >}}).

Pages are grouped by task below. Pick a group, scan the titles, and jump to the one you need.

- [How to add dynamic versioning to uv projects](https://pydevtools.com/handbook/how-to/how-to-add-dynamic-versioning-to-uv-projects.md)
- [How to add Python to your system path with uv](https://pydevtools.com/handbook/how-to/how-to-add-python-to-your-system-path-with-uv.md)
- [How to add type annotations to a Python project with pyrefly infer](https://pydevtools.com/handbook/how-to/how-to-add-type-annotations-with-pyrefly-infer.md)
- [How to Build Multi-Platform Wheels with cibuildwheel](https://pydevtools.com/handbook/how-to/how-to-build-multi-platform-wheels-with-cibuildwheel.md)
- [How to Build Read the Docs with uv](https://pydevtools.com/handbook/how-to/how-to-build-read-the-docs-with-uv.md)
- [How to change the Python version of a uv project](https://pydevtools.com/handbook/how-to/how-to-change-the-python-version-of-a-uv-project.md)
- [How to Combine Coverage Across a CI Matrix](https://pydevtools.com/handbook/how-to/how-to-combine-coverage-across-a-ci-matrix.md)
- [How to configure Claude Code to run your pre-commit hooks](https://pydevtools.com/handbook/how-to/how-to-configure-claude-code-for-pre-commit.md)
- [How to configure Claude Code to run your pytest suite](https://pydevtools.com/handbook/how-to/how-to-configure-claude-code-for-pytest.md)
- [How to configure Claude Code to use uv](https://pydevtools.com/handbook/how-to/how-to-configure-claude-code-to-use-uv.md)
- [How to configure Claude Code to use virtual environments](https://pydevtools.com/handbook/how-to/how-to-configure-claude-code-to-use-virtual-environments.md)
- [How to configure Claude Code with a Python type checker](https://pydevtools.com/handbook/how-to/how-to-configure-claude-code-with-a-python-type-checker.md)
- [How to configure Cursor for a uv project](https://pydevtools.com/handbook/how-to/how-to-configure-cursor-for-a-uv-project.md)
- [How to configure Cursor for pytest](https://pydevtools.com/handbook/how-to/how-to-configure-cursor-for-pytest.md)
- [How to configure Cursor for Ruff](https://pydevtools.com/handbook/how-to/how-to-configure-cursor-for-ruff.md)
- [How to configure Cursor rules to use uv](https://pydevtools.com/handbook/how-to/how-to-configure-cursor-rules-to-use-uv.md)
- [How to Configure Helix for a uv Project](https://pydevtools.com/handbook/how-to/how-to-configure-helix-for-a-uv-project.md)
- [How to configure mypy and django-stubs in a uv project](https://pydevtools.com/handbook/how-to/how-to-configure-mypy-and-django-stubs-in-a-uv-project.md)
- [How to configure mypy strict mode](https://pydevtools.com/handbook/how-to/how-to-configure-mypy-strict-mode.md)
- [How to configure PyCharm for a uv project](https://pydevtools.com/handbook/how-to/how-to-configure-pycharm-for-a-uv-project.md)
- [How to configure recommended Ruff defaults](https://pydevtools.com/handbook/how-to/how-to-configure-recommended-ruff-defaults.md)
- [How to configure Ruff for Django](https://pydevtools.com/handbook/how-to/how-to-configure-ruff-for-django.md)
- [How to configure Ruff with Claude Code](https://pydevtools.com/handbook/how-to/how-to-configure-ruff-with-claude-code.md)
- [How to configure VS Code for a uv project](https://pydevtools.com/handbook/how-to/how-to-configure-vs-code-for-a-uv-project.md)
- [How to configure VS Code for type checking in a uv project](https://pydevtools.com/handbook/how-to/how-to-configure-vs-code-for-type-checking-in-a-uv-project.md)
- [How to Configure Zed for a uv Project](https://pydevtools.com/handbook/how-to/how-to-configure-zed-for-a-uv-project.md)
- [How to convert a script with requirements.txt to PEP 723 inline metadata](https://pydevtools.com/handbook/how-to/how-to-convert-a-script-with-requirements-txt-to-pep-723-inline-metadata.md)
- [How to create a new Python project with Codex](https://pydevtools.com/handbook/how-to/how-to-create-a-new-python-project-with-codex.md)
- [How to create a pylock.toml lockfile](https://pydevtools.com/handbook/how-to/how-to-create-a-pylock-toml-lockfile.md)
- [How to Create and Distribute a Python CLI Tool](https://pydevtools.com/handbook/how-to/how-to-create-and-distribute-a-python-cli-tool.md)
- [How to create and use a Python virtual environment with venv](https://pydevtools.com/handbook/how-to/how-to-create-and-use-a-python-virtual-environment-with-venv.md)
- [How to customize uv's virtual environment location](https://pydevtools.com/handbook/how-to/how-to-customize-uvs-virtual-environment-location.md)
- [How to deploy a uv project to AWS Fargate](https://pydevtools.com/handbook/how-to/how-to-deploy-a-uv-project-to-aws-fargate.md)
- [How to deploy a uv project to AWS Lambda](https://pydevtools.com/handbook/how-to/how-to-deploy-a-uv-project-to-aws-lambda.md)
- [How to deploy a uv project to Azure Container Apps](https://pydevtools.com/handbook/how-to/how-to-deploy-a-uv-project-to-azure-container-apps.md)
- [How to deploy a uv project to Fly.io](https://pydevtools.com/handbook/how-to/how-to-deploy-a-uv-project-to-fly-io.md)
- [How to deploy a uv project to Google Cloud Run](https://pydevtools.com/handbook/how-to/how-to-deploy-a-uv-project-to-google-cloud-run.md)
- [How to Deploy a uv Project to Hugging Face Spaces](https://pydevtools.com/handbook/how-to/how-to-deploy-a-uv-project-to-hugging-face-spaces.md)
- [How to deploy a uv project to Vercel](https://pydevtools.com/handbook/how-to/how-to-deploy-a-uv-project-to-vercel.md)
- [How to Disable Ruff Rules for a Block of Code](https://pydevtools.com/handbook/how-to/how-to-disable-ruff-rules-for-a-block-of-code.md)
- [How to Disable the Ruff Formatter for a Block of Code](https://pydevtools.com/handbook/how-to/how-to-disable-the-ruff-formatter-for-a-block-of-code.md)
- [How to distribute internal Python CLI tools with uv](https://pydevtools.com/handbook/how-to/how-to-distribute-internal-python-cli-tools-with-uv.md)
- [How to Enable Ruff Security Rules](https://pydevtools.com/handbook/how-to/how-to-enable-ruff-security-rules.md)
- [How to fix "No `project` Table Found" error in uv](https://pydevtools.com/handbook/how-to/how-to-fix-no-project-table-found-error-in-uv.md)
- [How to Fix Common pytest Errors with uv](https://pydevtools.com/handbook/how-to/how-to-fix-common-pytest-errors-with-uv.md)
- [How to Fix ModuleNotFoundError: No module named 'numpy' During pip Install](https://pydevtools.com/handbook/how-to/how-to-fix-modulenotfounderror-no-module-named-numpy-during-pip-install.md)
- [How to fix Python version incompatibility errors in uv](https://pydevtools.com/handbook/how-to/how-to-fix-python-version-incompatibility-errors-in-uv.md)
- [How to fix the "externally-managed-environment" error](https://pydevtools.com/handbook/how-to/how-to-fix-the-externally-managed-environment-error.md)
- [How to format pyproject.toml with taplo](https://pydevtools.com/handbook/how-to/how-to-format-pyproject-toml-with-taplo.md)
- [How to gradually adopt type checking in an existing Python project](https://pydevtools.com/handbook/how-to/how-to-gradually-adopt-type-checking-in-an-existing-python-project.md)
- [How to Host Your Own Python Package Index](https://pydevtools.com/handbook/how-to/how-to-host-your-own-python-package-index.md)
- [How to Install bitsandbytes](https://pydevtools.com/handbook/how-to/how-to-install-bitsandbytes.md)
- [How to Install DeepSpeed](https://pydevtools.com/handbook/how-to/how-to-install-deepspeed.md)
- [How to Install Flash-Attention](https://pydevtools.com/handbook/how-to/how-to-install-flash-attention.md)
- [How to install from a pylock.toml lockfile with pip](https://pydevtools.com/handbook/how-to/how-to-install-from-a-pylock-toml-lockfile-with-pip.md)
- [How to Install Hugging Face Transformers with uv](https://pydevtools.com/handbook/how-to/how-to-install-hugging-face-transformers-with-uv.md)
- [How to Install JAX with uv](https://pydevtools.com/handbook/how-to/how-to-install-jax-with-uv.md)
- [How to Install llama-cpp-python](https://pydevtools.com/handbook/how-to/how-to-install-llama-cpp-python.md)
- [How to install OpenAI's Astral plugins for Claude Code](https://pydevtools.com/handbook/how-to/how-to-install-astral-plugins-for-claude-code.md)
- [How to install Python CLI tools without Python](https://pydevtools.com/handbook/how-to/how-to-install-python-cli-tools-without-python.md)
- [How to install Python with uv](https://pydevtools.com/handbook/how-to/how-to-install-python-with-uv.md)
- [How to Install PyTorch with uv](https://pydevtools.com/handbook/how-to/how-to-install-pytorch-with-uv.md)
- [How to Install RAPIDS with uv](https://pydevtools.com/handbook/how-to/how-to-install-rapids-with-uv.md)
- [How to Install Triton](https://pydevtools.com/handbook/how-to/how-to-install-triton.md)
- [How to install uv](https://pydevtools.com/handbook/how-to/how-to-install-uv.md)
- [How to install uv on 32-bit Raspberry Pi OS](https://pydevtools.com/handbook/how-to/how-to-install-uv-on-32-bit-raspberry-pi-os.md)
- [How to install uv on Linux](https://pydevtools.com/handbook/how-to/how-to-install-uv-on-linux.md)
- [How to install uv on macOS](https://pydevtools.com/handbook/how-to/how-to-install-uv-on-macos.md)
- [How to install uv on Windows](https://pydevtools.com/handbook/how-to/how-to-install-uv-on-windows.md)
- [How to Install xformers](https://pydevtools.com/handbook/how-to/how-to-install-xformers.md)
- [How to keep Python up to date with uv python upgrade](https://pydevtools.com/handbook/how-to/how-to-keep-python-up-to-date-with-uv-python-upgrade.md)
- [How to lock uv script dependencies for reproducible execution](https://pydevtools.com/handbook/how-to/how-to-lock-uv-script-dependencies.md)
- [How to maintain a uv project](https://pydevtools.com/handbook/how-to/how-to-maintain-a-uv-project.md)
- [How to manage cross-repository Python dependencies with uv](https://pydevtools.com/handbook/how-to/how-to-manage-cross-repo-python-dependencies-with-uv.md)
- [How to Measure Code Coverage with pytest-cov](https://pydevtools.com/handbook/how-to/how-to-measure-code-coverage-with-pytest-cov.md)
- [How to migrate from Black to Ruff formatter](https://pydevtools.com/handbook/how-to/how-to-migrate-from-black-to-ruff-formatter.md)
- [How to migrate from conda to pixi](https://pydevtools.com/handbook/how-to/how-to-migrate-from-conda-to-pixi.md)
- [How to migrate from mypy to Pyrefly](https://pydevtools.com/handbook/how-to/how-to-migrate-from-mypy-to-pyrefly.md)
- [How to migrate from mypy to ty](https://pydevtools.com/handbook/how-to/how-to-migrate-from-mypy-to-ty.md)
- [How to migrate from Pipenv to uv](https://pydevtools.com/handbook/how-to/how-to-migrate-from-pipenv-to-uv.md)
- [How to migrate from Poetry to uv](https://pydevtools.com/handbook/how-to/how-to-migrate-from-poetry-to-uv.md)
- [How to migrate from pyright to ty](https://pydevtools.com/handbook/how-to/how-to-migrate-from-pyright-to-ty.md)
- [How to migrate from requirements.txt to pyproject.toml with uv](https://pydevtools.com/handbook/how-to/migrate-requirements.txt.md)
- [How to migrate from setup.py to pyproject.toml](https://pydevtools.com/handbook/how-to/migrate-setup-py.md)
- [How to migrate from uv to pip](https://pydevtools.com/handbook/how-to/how-to-migrate-from-uv-to-pip.md)
- [How to Parameterize Tests with pytest](https://pydevtools.com/handbook/how-to/how-to-parameterize-tests-with-pytest.md)
- [How to pin GitHub Actions by SHA for Python projects](https://pydevtools.com/handbook/how-to/how-to-pin-github-actions-by-sha-for-python-projects.md)
- [How to profile a Python script with py-spy](https://pydevtools.com/handbook/how-to/how-to-profile-a-python-script-with-py-spy.md)
- [How to Protect Against Python Supply Chain Attacks with uv](https://pydevtools.com/handbook/how-to/how-to-protect-against-python-supply-chain-attacks-with-uv.md)
- [How to Publish a Python Package to conda-forge](https://pydevtools.com/handbook/how-to/how-to-publish-a-python-package-to-conda-forge.md)
- [How to Publish Python Packages with Digital Attestations](https://pydevtools.com/handbook/how-to/how-to-publish-python-packages-with-digital-attestations.md)
- [How to Publish to PyPI with Trusted Publishing](https://pydevtools.com/handbook/how-to/how-to-publish-to-pypi-with-trusted-publishing.md)
- [How to Publish to TestPyPI with uv](https://pydevtools.com/handbook/how-to/how-to-publish-to-testpypi-with-uv.md)
- [How to put your Python project on GitHub](https://pydevtools.com/handbook/how-to/how-to-put-your-python-project-on-github.md)
- [How to replace Black, isort, flake8, and pyupgrade with Ruff](https://pydevtools.com/handbook/how-to/how-to-replace-black-isort-flake8-pyupgrade-with-ruff.md)
- [How to replace tox with uv and a Makefile](https://pydevtools.com/handbook/how-to/how-to-replace-tox-with-uv-and-a-makefile.md)
- [How to require a virtualenv when installing packages with pip?](https://pydevtools.com/handbook/how-to/how-to-require-a-virtual-for-installing-packages.md)
- [How to Run a Jupyter Notebook with uv](https://pydevtools.com/handbook/how-to/jupyter-notebook-with-uv.md)
- [How to Run a Python REPL with uv](https://pydevtools.com/handbook/how-to/how-to-run-a-python-repl-with-uv.md)
- [How to run Python scripts on a Raspberry Pi with uv](https://pydevtools.com/handbook/how-to/how-to-run-python-scripts-on-a-raspberry-pi-with-uv.md)
- [How to run tests in parallel with pytest-xdist](https://pydevtools.com/handbook/how-to/how-to-run-tests-in-parallel-with-pytest-xdist.md)
- [How to Run Tests Using uv](https://pydevtools.com/handbook/how-to/how-to-run-tests-using-uv.md)
- [How to run the IPython shell in your uv project](https://pydevtools.com/handbook/how-to/how-to-run-the-ipython-shell-in-your-uv-project.md)
- [How to run uv on Modal](https://pydevtools.com/handbook/how-to/how-to-run-uv-on-modal.md)
- [How to Scan Python Dependencies for Vulnerabilities](https://pydevtools.com/handbook/how-to/how-to-scan-python-dependencies-for-vulnerabilities.md)
- [How to Serve LLMs Locally with vLLM and uv](https://pydevtools.com/handbook/how-to/how-to-use-vllm-with-uv.md)
- [How to set up a Python monorepo with uv workspaces](https://pydevtools.com/handbook/how-to/how-to-set-up-a-python-monorepo-with-uv-workspaces.md)
- [How to Set Up Auto-Reload for Python Projects](https://pydevtools.com/handbook/how-to/how-to-set-up-auto-reload-for-python-projects.md)
- [How to Set Up CLAUDE.md for a Python Project](https://pydevtools.com/handbook/how-to/how-to-use-the-pydevtools-claude-md-template.md)
- [How to Set Up Documentation for a Python Package with Sphinx or MkDocs](https://pydevtools.com/handbook/how-to/how-to-set-up-documentation-for-a-python-package.md)
- [How to set up pre-commit hooks for a Python project](https://pydevtools.com/handbook/how-to/how-to-set-up-pre-commit-hooks-for-a-python-project.md)
- [How to set up prek hooks for a Python project](https://pydevtools.com/handbook/how-to/how-to-set-up-prek-hooks-for-a-python-project.md)
- [How to sort Python imports with Ruff](https://pydevtools.com/handbook/how-to/how-to-sort-python-imports-with-ruff.md)
- [How to stop AI agents from bypassing pre-commit hooks](https://pydevtools.com/handbook/how-to/how-to-stop-ai-agents-from-bypassing-pre-commit-hooks.md)
- [How to switch from pyenv to uv for managing Python versions](https://pydevtools.com/handbook/how-to/how-to-switch-from-pyenv-to-uv-for-managing-python-versions.md)
- [How to test a Python library against multiple type checkers](https://pydevtools.com/handbook/how-to/how-to-test-a-python-library-against-multiple-type-checkers.md)
- [How to Test Against Multiple Python Versions Using uv](https://pydevtools.com/handbook/how-to/how-to-test-against-multiple-python-versions-using-uv.md)
- [How to try the ty type checker](https://pydevtools.com/handbook/how-to/how-to-try-the-ty-type-checker.md)
- [How to upgrade setup-uv from v7 to v8](https://pydevtools.com/handbook/how-to/how-to-upgrade-setup-uv-from-v7-to-v8.md)
- [How to upgrade uv](https://pydevtools.com/handbook/how-to/how-to-upgrade-uv.md)
- [How to Use `--exclude-newer` for Reproducible Python Environments](https://pydevtools.com/handbook/how-to/how-to-use-exclude-newer-for-reproducible-python-environments.md)
- [How to use a uv lockfile for reproducible Python environments](https://pydevtools.com/handbook/how-to/how-to-use-a-uv-lockfile-for-reproducible-python-environments.md)
- [How to use free-threaded Python in a uv project](https://pydevtools.com/handbook/how-to/how-to-use-free-threaded-python-in-a-uv-project.md)
- [How to Use marimo with uv](https://pydevtools.com/handbook/how-to/how-to-use-marimo-with-uv.md)
- [How to use picamera2 and GPIO with uv on Raspberry Pi](https://pydevtools.com/handbook/how-to/how-to-use-picamera2-and-gpio-with-uv-on-raspberry-pi.md)
- [How to use pip in a uv virtual environment](https://pydevtools.com/handbook/how-to/how-to-use-pip-in-a-uv-virtual-environment.md)
- [How to Use Poe the Poet as a Task Runner with uv](https://pydevtools.com/handbook/how-to/how-to-use-poe-the-poet-as-a-task-runner-with-uv.md)
- [How to use private package indexes with uv](https://pydevtools.com/handbook/how-to/how-to-use-private-package-indexes-with-uv.md)
- [How to use Python skills with Claude Code](https://pydevtools.com/handbook/how-to/how-to-use-python-skills-with-claude-code.md)
- [How to use ty in CI](https://pydevtools.com/handbook/how-to/how-to-use-ty-in-ci.md)
- [How to use uv in a Dockerfile](https://pydevtools.com/handbook/how-to/how-to-use-uv-in-a-dockerfile.md)
- [How to use uv on NixOS](https://pydevtools.com/handbook/how-to/how-to-use-uv-on-nixos.md)
- [How to Use uv on Windows ARM64](https://pydevtools.com/handbook/how-to/how-to-use-uv-on-windows-arm64.md)
- [How to use uv to speed up Hatch](https://pydevtools.com/handbook/how-to/how-to-use-uv-to-speed-up-hatch.md)
- [How to use uv to speed up PDM](https://pydevtools.com/handbook/how-to/how-to-use-uv-to-speed-up-pdm.md)
- [How to use uv to speed up tox](https://pydevtools.com/handbook/how-to/how-to-use-uv-to-speed-up-tox.md)
- [How to use uv with VS Code devcontainers](https://pydevtools.com/handbook/how-to/how-to-use-uv-with-vs-code-devcontainers.md)
- [How to Verify Dependencies with Hashes in uv](https://pydevtools.com/handbook/how-to/how-to-pin-dependencies-with-hashes-in-uv.md)
- [How to Vet a Python Package Before Installing It](https://pydevtools.com/handbook/how-to/how-to-vet-a-python-package-before-installing-it.md)
- [How to write Claude Code hooks for Python projects](https://pydevtools.com/handbook/how-to/how-to-write-claude-code-hooks-for-python-projects.md)
- [How to write install instructions for a Python library](https://pydevtools.com/handbook/how-to/how-to-write-install-instructions-for-a-python-library.md)
- [How to write self-contained Python scripts using PEP 723 inline metadata](https://pydevtools.com/handbook/how-to/how-to-write-a-self-contained-script.md)
- [pip to uv: a command cheatsheet](https://pydevtools.com/handbook/how-to/how-to-translate-pip-commands-to-uv.md)
