Dealing with 2.7 and 3.3 installations
Marcus von Appen
mva at freebsd.org
Tue Jul 30 09:55:45 UTC 2013
Daniel Braniss <danny at cs.huji.ac.il>:
>> David, Daniel,
>>
>> just to take this to python@ and to clarify, what problems are still
>> open for you:
>>
>> - bapt confirmed that the parallel installation of python itself from
>> binary packages should work
>> without any problem
>> - Installation from the ports tree should work without problems
>> - Installation of python modules from the ports tree basically works
>> without problems (given that
>> you set the correct make knobs), BUT can create tons of issues,
>> when it comes to deinstallation,
>> port dependency detection, etc.
>>
>> As per my understanding, you both mentioned issues with both, python
>> itself and 3rd party packages.
>> As said above, python itself should not be any problem. If you ran
>> into any issue, please let python@
>> know about it (ideally with a reproducible step-by-step description)
>> or create a PR.
>>
>> Regarding the 3rd party modules, I am not sure about the pkg status.
>> Maybe bapt can say a word or
>> two about whether packages are (planned to or currently) built for
>> different python versions or not.
>> David, Daniel: if you are currently running into trouble with the 3rd
>> party modules, please
>> let us know, what your requirements are, so we can discuss different
>> solutions top be applied to the
>> ports tree and, where applicable, improved support for the pkg builds.
>>
>> Thanks and cheers
>> Marcus
>>
>>
>>
>
> hi Marcus,
> you are correct on most counts.
> it's the make in ports that's problematic.
>
> - no problem in installing all/any version of lang/python.
> - the issue is with 3rd. party modules, and more specifically
> when installing. Furthermore, most modules compile for all
> versions of python, but installing them is the issue:
> - if the module is installed, no matter what python
> version, it will be deinstalled - unless FORCE_PKG_REGISTER=,
> which prevents the deinstall issue
> IMHO, the check for is installed does not correctly use PYTHON_VERSION
> example:
>
> /usr/local/bin/python -> python3.3
>
> # cd /usr/ports/devel/py-setproctitle
> # make install
> ===> Installing for py33-setproctitle-1.1.7
> ===> py33-setproctitle-1.1.7 depends on file: /usr/local/bin/python3.3 -
> found
> ===> Generating temporary packing list
> ===> Checking if devel/py-setproctitle already installed
> ===> py33-setproctitle-1.1.7 is already installed
> <==== NOT TRUE
> You may wish to ``make deinstall'' and install this port again
> by ``make reinstall'' to upgrade it properly.
> If you really wish to overwrite the old port of devel/py-setproctitle
> without deleting it first, set the variable "FORCE_PKG_REGISTER"
> in your environment or the "make install" command line.
> *** [check-already-installed] Error code 1
>
> Stop in /usr/ports/devel/py-setproctitle.
> # ls -ls /usr/local/lib/python3.3/site-packages/
> total 5
> 1 -r--r--r-- 1 root wheel 119 Jul 29 11:43 README
> 2 drwxr-xr-x 4 root wheel 14 Jul 28 14:00 psycopg2
> 3 -rw-r--r-- 1 root wheel 1883 Jul 28 14:00 psycopg2-2.5.1-py3.3.egg-info
> # make {de,re}install
> ===> Deinstalling for devel/py-setproctitle
> ===> Deinstalling
> Deinstallation has been requested for the following 1 packages:
>
> py27-setproctitle-1.1.7 <==========!!!!
>
> The deinstallation will free 31 kB
> [1/1] Deleting py27-setproctitle-1.1.7... done
> ===> Installing for py33-setproctitle-1.1.7
> ===> py33-setproctitle-1.1.7 depends on file: /usr/local/bin/python3.3 -
> found
> ===> Generating temporary packing list
> ...
>
>
> - somehwere it should be mentioned:
> - how to set the default python
> i.e: usr/local/bin/python is a symlink, as is python-config
> - the bsd.python.mk is very confusing, and has some errors
>
> at the moment my goal is to have python 2.7 as default, and 3.2/3.3
> as optional, and using PYTHON_VERSION= and FORCE_PKG_REGISTER= ie:
> make PYTHON_VERSION=3.3 FORCE_PKG_REGISTER= clean install
> is a workaround
Does the same problem strike you, if you use PYTHON_DEFAULT_VERSION=xxx?
PYTHON_VERSION should be used by ports, not by the user (input).
Installing the port for different python versions at the same is not
bullet-proof anyways, especially when it comes to data being installed
outside of the python site-packages.
So what you need is support for a python module installed for two different
python versions at the same time, correct? And this (right now) is not
supported, I am afraid.
Cheers
Marcus
More information about the freebsd-python
mailing list