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