Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Feb 2018 16:10:21 +0100
From:      Roland Smith <rsmith@xs4all.nl>
To:        Gerhard Schmidt <estartu@ze.tum.de>
Cc:        FreeBSD Python <freebsd-python@freebsd.org>
Subject:   Re: Installing a port to a specific python version
Message-ID:  <20180201151021.GA52705@slackbox.erewhon.home>
In-Reply-To: <6825a87e-60ec-f3bd-3368-2a6a519667bb@ze.tum.de>
References:  <6825a87e-60ec-f3bd-3368-2a6a519667bb@ze.tum.de>

next in thread | previous in thread | raw e-mail | index | archive | help
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]



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180201151021.GA52705>