[Pythonmac-SIG] Re: Pythonmac-SIG Digest, Vol 20, Issue 24
Bob Ippolito
bob at redivi.com
Mon Dec 20 16:21:20 CET 2004
On Dec 20, 2004, at 8:30 AM, Jon Schull wrote:
> For what its worth I came across a seemingly related set of issues
> last night while trying to get apache to run python cgis. Our
> solution was to rewrite the #! lines as
> #! /sw/bin/env /sw/bin/python (the magic was in adding the first
> phrase). Related discusssion and alternative solutions is at
> http://projects.edgewall.com/trac/wiki/TracOnOsx
Apache starts as root with root's default environment. It's not going
to have /sw/bin in its path, so /usr/bin/env python is not going to run
Fink python. You might as well replace it with #!/sw/bin/python. Why
the hell does Fink have its own env, anyway?
> Jon said
>>
>> The ideal would of course be a single python. But failing that would
>> be a single installer that would put in place the two (or even more)
>> pythons needed in a manner that allowed one to work and install new
>> modules as needed, without risking obscure disasters.
Darwinports Python and the vendor Python play together perfectly
nicely, with no obscure disasters anywhere that I've seen. If you are
having conflicts between Fink and vendor Python, then it must be caused
by Fink. Probably due to the init script in your .bashrc / .tcshrc
that sets up your environment in such a way that everything you do can
end up using or linking to Fink-built stuff. Darwinports doesn't have
any such hacks, and never mangles your environment like that.
> Jack said
>> This is a known problem, which is explained in Mac/OSX/Dist/README:
>>> Currently (November 2003) there is still a bug in the build procedure
>>> for $DESTROOT builds: building some of the applets will fail (in
>>> ``Mac/OSX/Makefile``) if you don't have the same version of Python
>>> installed
>>> normally. So before doing the distribution you should build and
>>> install
>>> a framework Python in the normal way.
>>
>> Unfortunately, the problem is rather difficult to fix. buildapplet
>> (or py2app, or similar tools) will need to be told that we're in a
>> destroot install situation, so that if it wants filenames it should
>> use the non-destrooted version but if it actually needs the data
>> that's in the files it should use the destrooted filename.
>>
>> I can live with the current workaround for MacPython installers, if
>> it's a problem for darwinports file a bugreport and a solution may be
>> available sooner:-)
>
> Jon sighs...
> Unfortunate indeed. You can live with it, and I don't even understand
> your explanation. ;-/
>
> Its ironic that the python community values such elegance in the
> language yet tolerates such complexity in context. I presume that's
> because there's no alternative.
As Jack said, if you do things in the supported way, it just works.
DESTROOT is only used in relatively strange situations like when
building packages with Darwinports (probably Fink too). Since Jack is
the maintainer of Python, but not Fink or Darwinports Python, it's more
or less YAGNI for him. Given extremely limited time and resources, why
solve a problem you don't have?
... and the DESTROOT thing isn't really relevant to the problems you
brought up, anyway. This particular limitation only matters if you are
building a framework Python, and neither Fink nor Darwinports currently
provide such a build.
-bob
More information about the Pythonmac-SIG
mailing list