Python framework location and Python 3.0 conflict with 2.4
Rainer Müller
raimue at macports.org
Mon Mar 3 12:04:12 PST 2008
Blair Zajac wrote:
> We've discussed this briefly before on the list, but I'm of the mind that all
> new Python frameworks must be installed in a separate directory from the Python
> 2.4 framework for several reasons:
>
> 1) There's a conflict on the
> ${prefix}/Library/Frameworks/Python.framework/Versions file.
Also on Python.framework/{Headers,Python,Resources}. See below.
> 2) I have a requirement that we have multiple framework Pythons installed at the
> same time. With a deployment to a hundred Mac's or so running PyQt apps running
> on 2.4, I need to maintain that environment.
>
> It would be nice to have Python 3.0 with a framework build installed along side
> 2.4 so we can port our applications to Python 3.0 (which is source incompatible
> with 2.x).
>
> So I don't care really where the Python 3.0 framework gets installed, but its
> base must not be ${prefix}/Library/Frameworks. A directory such as
> ${prefix}/Library/Frameworks/${name} would work for me.
I discussed this with reiffert today on IRC.
If everything would work as it should, we would have
Python.framework/Versions/{2.4,2.5,3.0} and python_select would link
Python.framework/Versions/Current to the according version.
And now comes the big "but...":
All three ports try to add Headers,Python,Resources symlinks to
Versions/Current/{Headers,Python,Resources}. So if another port gets
activated it fails on these files. They have to exist, but can't be
owned by a port.
Sure, we could symlink like Headers -> Versions/3.0/Headers with
python_select. But that makes python_select a dependency to get a
working framework install.
Another solution would be Python24.framework, Python25.framework,
Python30.framework. But as frameworks are meant to be installed with
different versions (by this Current symlink) we should find some
solution to make use of it.
Rainer
More information about the macports-dev
mailing list