How to set Python version by default in FreeBSD?
The correct answer as of FreeBSD 12.0 is as follows.
- Create a file in
/tmp/makePatchPython3.6.patch
with the following contents:
1,2d0
< DEFAULT_VERSIONS += python=3.6
<
This will add a line to the start of your /etc/make.conf
that will change the default python in use on the system.
[/usr/ports/lang/python]$ sudo make deinstall
[/usr/ports/lang/python]$ sudo patch /etc/make.conf /tmp/makePatchPython3.6.patch
[/usr/ports/lang/python]$ sudo make reinstall
[/usr/ports/lang/python]$ python --version
Python 3.6.8 # This will be different depending on which python version you install.
You should remove the python meta-port /usr/ports/lang/python
.
Then set the following variable in /etc/make.conf
:
PYTHON_DEFAULT_VERSION='python3.2'
(If you want the latest version. Alternatively you can also use python3.1
. Currently, the default is python2.7
.)
Now install /usr/ports/lang/python
again.
Note that ports can request another version of python!
Update: Since October 2013, there is a new way of setting default versions;
20131003:
AFFECTS: users of lang/python* and ports
AUTHOR: [email protected]
The default versions of lang/python* have been changed to support the
new DEFAULT_VERSIONS variable.
PYTHON_DEFAULT_VERSION, PYTHON2_DEFAULT_VERSION and
PYTHON3_DEFAULT_VERSION are deprecated. If you have set them in your
make.conf, you should change them something like
DEFAULT_VERSIONS=python=2.7 python2=2.7 python3=3.3
You could remove /usr/local/bin/python
and create a symlink to Python 2.6:
rm /usr/local/bin/python
ln -s /usr/local/bin/python2.6 /usr/local/bin/python