Installing a port to a specific python version
Roland Smith
rsmith at xs4all.nl
Thu Feb 1 15:11:31 UTC 2018
On Wed, Jan 31, 2018 at 08:00:55AM +0100, Gerhard Schmidt wrote:
> Hi
>
> I'm having a small problem with python and FreeBSD. I'm a python
> developer. I Maintain some legacy code written in python2.7 and some new
> projects in Python 3.6 and for testing purposes i need python 3.4 and
> 3.5. So I need all this versions of python on my system, at least to be
> able to create virtual envs.
>
> Installing the python interpreters is not a problem, but installing
> python packages.
>
> How can in say a port it shouldn't use the default version stated in
> make.conf but a specific version. I don't want to change the default
> version every time i install a Port.
>
> I've tried to set PYTHON_VERSION as environment variable.
> I've tried to give PYTHON_VERSION as parameter to make.
> I've tried to give PYTHON as parameter to make.
> I've tried python3.5 python35 3.5 and 35 with each of them, it still
> installed the default python version.
>
> Then i tried make PYTHON_DEFAULT=3.5 and get a error message.
Python ports work with "flavors" now. See the entries for 20171130 in
/usr/ports/UPDATING.
Use it like this::
cd /usr/ports/<foo>
make FLAVOR=py36 install clean
If you always want a specific version of a port, you can put the following in
/etc/make.conf::
.if ${.CURDIR:M*/devel/ipython}
FLAVOR=py36
.endif
If you always want to build ports for all supported versions of Python, use
the following in /etc/make.conf::
BUILD_ALL_PYTHON_FLAVORS=true
You *might* be able to restrict that to a specific package, like this::
.if ${.CURDIR:M*/www/py-requests}
BUILD_ALL_PYTHON_FLAVORS=true
.endif
According to the docs, `pkg` supports flavors. But I can't find anything in
the manpage.
Hope this helps,
Roland
--
R.F.Smith http://rsmith.home.xs4all.nl/
[plain text email much appreciated]
More information about the freebsd-python
mailing list