wiki:Python

Version 7 (modified by jmroot (Joshua Root), 5 years ago) (diff)

update versions, links

Python

Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.

Python in MacPorts

MacPorts allows the installation of several different versions of python.
Versions 3.5 and later, however, are the primary focus of work. New ports should support Python 3.7, with support for older versions added only if there is a good reason.

Frameworks

Python is installed as a Framework.

Avoiding Conflicts

Since MacPorts supports several different version of Python, conventions are adopted to ensure that there are no conflicts.
Ports of python modules which use the python PortGroup are automatically installed so as to avoid conflicts.
Other python packages must self-enforce conventions to avoid conflicts.

Versions 2.6 and Later

  • Header files are installed into ${frameworks_dir}/Python.framework/Versions/${python.branch}/include/python${python.branch}.
  • Library files are installed into ${frameworks_dir}/Python.framework/Versions/${python.branch}/lib/python${python.branch}.
  • Site-packages are installed into ${frameworks_dir}/Python.framework/Versions/${python.branch}/lib/python${python.branch}/site-packages.

pkg-config Files

Some python packages (such as Pycairo) install .pc files for pkg-config.
Since these files do not have the python version in their names, they can not be installed in the standard locations for pkg-config.
Instead they are installed into ${frameworks_dir}/Python.framework/Versions/${python.branch}/lib/lib/pkgconfig.

In order for pkg-config to find the .pc files, the environment variable PKG_CONFIG_PATH must be set.
For MacPorts Portfiles, the variable configure.pkg_config_path can be used for this purpose.

no-user-cfg Option

The existence of ~/pydistutils.cfg can cause problems during installation of python packages (see #9831).
For Python version 2.5 and later, the option --no-user-cfg has been added to allow this file to be ignored.

Converting to the unified python PortGroup

As of July 2011, a new unified python PortGroup has been introduced to simplify the maintenance of Python module ports. It uses subports to keep a single Portfile for all versions of python.

Look at the examples to know how to convert to it...

Examples: r82756, r82241

Mailing List archive: Unifying Python Ports Python portgroup