Library Path während Laufzeit ändern ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

Ganz klar, daß das nicht geht. LD_LIBARY_PATH wird vom Loader einmal beim Programmstart ausgewertet und dann nie wieder angeschaut.

Ich hab das Problem mal so gelöst, daß ich eine zweite Umgebungsvariable
setze, wenn mein Program den LD_LIBRARY_PATH bereits geändert hat.
Ist LD_LIBRARY_PATH noch nicht verändert worden, verwende ich os.execv um das Program gleich nochmal zu starten.

Das ganze sieht bei mir - am Ende vom Startskript - so aus:

Code: Alles auswählen

import sys
from os import environ, execv
if environ.get( "PYDYNPACK_ENV" ) != "SET":
 environ[ "LD_LIBRARY_PATH" ] = abspath( "somepath" )
 environ[ "PYDYNPACK_ENV" ] = "SET"
 execv( sys.argv[ 0 ], sys.argv )
del sys, environ, execv
Das wär die Idee für eine allgemeine pure-python Lösung. Natürlich ist es besser, wenn man den exec-Aufruf vermeiden kann.
Antworten