Python default versions

Kubilay Kocak koobs at FreeBSD.org
Thu Nov 12 15:00:02 UTC 2015


On 12/11/2015 11:45 PM, Carmel NY wrote:
> Unless I am mistaken, the default version of "python" on FreeBSD is "2.7" The
> default version for the "meta-port" for version 3 of the Python interpreter
> is "3.4"

Correct.

> I was just wondering if there is any serious consideration to at least
> changing the FreeBSD default version to "3.x". Python 3.0 was released in
> 2008. The final 2.x version 2.7 release came out in mid-2010, Also, could the
> default version for the "python3" meta-port be bumped to the latest version,
> "3.5".

On 3.x as the default version:

Unfortunately (as much as I'd love it to be otherwise) the 'has been
around since year XXXX argument doesn't fly. Even many Python developers
still don't default to 3.x. It's an Python ecosystem issue that is
slowly but surely getting traction, and we (OS's) can certainly help that.

If every python package was PEP-394 compatible it would at least make it
a bit easier. Unfortuntely, there is *that much* legacy code out there
that it makes it quite untenable to 'simply make the switch' on the
basis of how long Python 3.x has been out.

Having said that, There absolutely is a desire to do it, but we (FreeBSD
Python team, along with you and other FreeBSD/Python users) should
discuss and document what this needs to look like along, how it needs to
work, along with any issues that are likely or might present themselves.

This will ensure that any migration is intentional, methodical and
minimises user impact.

TLDR: On Python 3.x as a default version: Yes, the desire is there and
there's no reason in principle against it.

On 3.5 becoming the default version, can do. Please open an issue under:

Ports & Packages::Ports Framework
Summary: Mk/Uses/python.mk: Set Python 3.5 as the default 3.x version
CC: python at FreeBSD.org

> Finally, is it possible to have two versions of python installed on the same
> machine, or would it lead to chaos?

Absolutely. You may also build port for any version of python by playing
with the DEFAULT_VERSION environment variable (in /etc/make.conf or on
the CLI)

There are *some* ports however, that are not currently 'concurrent
installation' safe, in that they install non-unique (read: identically
named) files.

Ports that have USE_PYTHON=concurrent set are tested to be concurrent safe.

Ports for example that install console_scripts and man files "tend" not
to be, for examples, both py27-foo and py34-foo (same underlying port)
try to install LOCALBASE/bin/foo.

Don't hesitate to open an issue for any Python port that isn't
concurrent safe, as "that is a bug" and should be fixed.

Great questions Carmel, thanks for posting

--
Regards

./koobs


More information about the freebsd-ports mailing list