setting environment variables
William Park
parkw at better.net
Mon Jun 19 15:19:53 EDT 2000
On Mon, Jun 19, 2000 at 09:04:47PM +0200, Walter Hofmann wrote:
>
> Hi,
>
> I need to set an environment variable so that a python module which I'd
> like to use finds the right shared library.
>
> I'm using Linux, so doing
>
> LD_LIBRARY_PATH=/opt/kde2/qt/lib python test.py
>
> works. But I would prefer to do it in python so that one can start my
> program by entering
>
> ./test.py
>
> However, setting LD_LIBRARY_PATH with os.environ within the python
> script (but before importing the library) is too late. The dynamic
> linker will not find the library this way.
>
> I then tried to use
>
> #!/usr/bin/env LD_LIBRARY_PATH=/opt/kde2/qt/lib python test.py
>
> which, according to env's manpage should work. It doesn't, but hangs
> instead in a tight loop consoming 100% CPU. Neither works the more
> complex
>
> #!/bin/bash -c 'LD_LIBRARY_PATH=/opt/kde2/qt/lib python ./test.py'
>
> which gives
>
> wh at frodo:~/programming/qtpython > ./test.py
> bash: - : unrecognized option
> Usage: bash [GNU long option] [option] ...
> [...]
>
> Finally, I found out that the following rather tricky (dual language)
> code works, however it is ugly to say the best:
>
> #!/bin/sh
> LD_LIBRARY_PATH="/usr/lib/qt-2.1.1/lib" "exec" "python" "$0" "$*"
> del LD_LIBRARY_PATH
> # python code starts here
>
>
> My question:
> Is anyone on this list aware of a cleaner way to to this?
>
>
> Walter
I don't think you can change shared library path inside Python. Since
you're running Linux, add '/opt/kde2/qt/lib' to /etc/ld.so.conf'.
--William
More information about the Python-list
mailing list