Dealing with 2.7 and 3.3 installations

Daniel Braniss danny at cs.huji.ac.il
Tue Jul 30 09:14:24 UTC 2013


> 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




More information about the freebsd-python mailing list