FreeBSD supports multiple, concurrently installable Python versions and environments for Python users and developers to work with. Every Python available in the FreeBSD ports tree can be built for any (and multiple) Python version using the FLAVORS and DEFAULT_VERSIONS framework mechanisms.

Binary packages available from the official FreeBSD Package repositories are built using a DEFAULT_VERSION of Python, which evolves over time.

Our Python Team works closely with upstream, aiming to resolve issues with an upstream-first approach and stays close-to-upstream with respect to documentation, guidance and recommendations.

FreeBSD is officially supported by, and provides multiple FreeBSD continuous integration workers for the Python project to ensure future versions of FreeBSD are supported, and so bugs and regressions are identified and resolved prior to release.



∞ - Ongoing

↻ - In Progress

☐ - Open

☑ - Done

Other Interesting Things

Tooling Challenges

The upstream Python packaging team has expressed interest in understanding the challenges faced by OS packagers with Python packaging tools. This information will be used to inform ongoing improvements and developments. Please document your experiences below:

Steps to switch the Python default version

  1. A successful exp-run is mandatory
  2. Set the new default version in
    • Uses/
      • _PYTHON_VERSIONS (retain order of preferred versions)
  3. Bump the PORTREVISION of following ports
    • devel/py-setuptools
    • lang/cython
    • math/py-numpy
  4. Add UPDATING instructions


Current instructions are:

TODO for the instructions in UPDATING

Following parts should be added with the next Python switchover:

Refine instructions for Portmaster

With more complex scenarios of installed ports the upgrade might not go smoothly. There have been reported issues if following ports were installed:

There are improved instructions that still needs to be tested thoroughly:

Improved UPDATING instructions for Portmaster

Add clean up instructions

The following is a draft based on a suggestion from ThierryThomas (thierry) to improve the user experience.

Python Team

CategoryPorts CategoryTeam CategoryStale

Python (last edited 2023-01-29T14:29:22+0000 by GrahamPerrin)