Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jul 2013 11:01:45 +0200
From:      Marcus von Appen <mva@freebsd.org>
To:        ports@freebsd.org
Subject:   Re: python 2 and 3 modules
Message-ID:  <20130729110145.Horde.vaUlaCnJ-q1VD1He43pO6Q8@webmail.df.eu>
In-Reply-To: <CAO%2BPfDcARya67Kd%2BhOEfDGNzLA4zp%2B8d1JYJhsYShQx=kXVijA@mail.gmail.com>
References:  <E1V3QJs-000JpR-FR@kabab.cs.huji.ac.il> <CAO%2BPfDcARya67Kd%2BhOEfDGNzLA4zp%2B8d1JYJhsYShQx=kXVijA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
David Demelier <demelier.david@gmail.com>:

> 2013/7/28 Daniel Braniss <danny@cs.huji.ac.il>:
>> Hi,
>> I need to be able to have both (2.7 and 3.2) modules.
>> setting PYTHON_VERSION=3.2 in /etc/make.conf compiles properly,
>> but make install, insists that that the 2.7 version is installed!
>> after deinstalling, it will install the 3.2 version in the correct  
>> directory:
>>         /usr/local/lib/python3.2/site-path
>> but now I lost the 2.7 version.
>>
>> the same happens if I try to install the 2.7 version, it will complain
>> that the 3,2 version is installed.
>>
>> BTW, the comments in ports/Mk/bsd.python.mk are very confusing and
>> some are wrong:
>> # PYTHON_VERSION        - Version of the python binary in your  
>> ${PATH}, in the
>> #                                         format "python2.0". Set  
>> this in your
>> makefile in case you
>> #                                         want to build extensions with an
>> older binary.
>> #                                         default: depends on the version of
>> your python binary
>>
>> setting it to "python3.2" produces errors in the make, while 3.2 is ok
>>
>> is there any fix?
>>
>> thanks,
>>         danny
>>
>
> For the moment its pretty difficult to install python 2.7 and 3.3 at
> the same time. However, if you plan to install python 3.3, you need to
> set PYTHON_DEFAULT_VERSION to "python3.3" and not PYTHON_VERSION.

No, it is not.

cd /usr/ports/lang/python27 && make install clean
cd /usr/ports/lang/python32 && make install clean
cd /usr/ports/lang/python33 && make install clean

works like a charm. If you however want to use Python modules, it might become
more difficult. It was discussed some time ago on the freebsd-python  
mailing list
without an applicable result.

If you need to have the same Python module for different versions  
around, I would
recommend to use virtualenv in favour of the ports infrastructure, since

make -DPYTHON_DEFAULT_VERSION=xxx <python-module>    - or -
make -DPYTHON_VERSION=xxx <python-module>     - or -
make -DPYTHON3_DEFAULT_VERSION=xxx <python-module>

might mess up previous installations for a different python version.

Cheers
Marcus





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130729110145.Horde.vaUlaCnJ-q1VD1He43pO6Q8>