Date: Mon, 29 Jul 2013 12:22:32 +0200 From: David Demelier <demelier.david@gmail.com> To: mva@freebsd.org Cc: ports@freebsd.org Subject: Re: python 2 and 3 modules Message-ID: <CAO%2BPfDfYVzjiH8Q=TB8RWg09unA37Mnwb3FACXWL60bjnZm_iA@mail.gmail.com> In-Reply-To: <20130729110145.Horde.vaUlaCnJ-q1VD1He43pO6Q8@webmail.df.eu> References: <E1V3QJs-000JpR-FR@kabab.cs.huji.ac.il> <CAO%2BPfDcARya67Kd%2BhOEfDGNzLA4zp%2B8d1JYJhsYShQx=kXVijA@mail.gmail.com> <20130729110145.Horde.vaUlaCnJ-q1VD1He43pO6Q8@webmail.df.eu>
next in thread | previous in thread | raw e-mail | index | archive | help
2013/7/29 Marcus von Appen <mva@freebsd.org>: > 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 > Of course from ports it will work. I've told about binary packages. When you bulk build a package for python 2.7 and python 3.3 the /usr/local/bin/python will be included in both versions. Because bulk building python 3 modules will requires to set PYTHON_DEFAULT_VERSION and PYTHON3_DEFAULT_VERSION to the python 3.3 interpreter. Then the poudriere bulk will generate python 2.7 and python 3.3 pkg-plist including for both /usr/local/bin/python and all of the non-versioned files I've already told above. You may now think "who cares? it build from ports". I would say no, binary packages will be used more and more in the future. If we install the /usr/local/bin/python symlink by testing its presence instead of the default version the problem will be fixed. Regards, -- Demelier David
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAO%2BPfDfYVzjiH8Q=TB8RWg09unA37Mnwb3FACXWL60bjnZm_iA>