On Feb 26, 4:32 pm, Peter Otten <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: > > Hi there, > > > I have a problem with setting environment variable in my script that > > uses qt library. For this library I have to define a path to tell the > > script whre to find it. > > > I have a script called "shrink_bs_070226" that looks like this: > > ********************************** > > import sys, re, glob, shutil > > import os > > > os.environ["LD_LIBRARY_PATH"]='/path/Linux/rh_linux' > > > from qt import * > > *********************** > > > When I run this script I get this error: > > >> python shrink_bs_070226.py > > Traceback (most recent call last): > > File "shrink_bs_070226.py", line 25, in ? > > from qt import * > > File "/path/Linux/python/rh_linux/lib/python2.2/site-packages/ > > qt.py", line 46, in ? > > import libsip > > ImportError: libadamsqt.so: cannot open shared object file: No such > > file or directory > > > What is important here that when I set this variable interactive in > > python session, there is no problem with import. > > >> python > > Python 2.2.3 (#1, Aug 8 2003, 08:44:02) > > [GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-13)] on linux2 > > Type "help", "copyright", "credits" or "license" for more information. > >>>> import os > > >>>> import shrink_bs_070226 > > Traceback (most recent call last): > > File "<stdin>", line 1, in ? > > File "shrink_bs_070226.py", line 25, in ? > > from qt import * > > ImportError: No module named qt > > >>>> os.environ["LD_LIBRARY_PATH"]='/path/Linux/rh_linux' > > >>>> import shrink_bs_070226 > > > Could anybody explain me the logic here? Am I missing something? > > Until Python 2.4 a failed import could leave some debris which would make > you think a second import did succeed. > > Try > > >>> import os > >>> os.environ["LD_LIBRARY_PATH"]='/path/Linux/rh_linux' > >>> import shrink_bs_070226 # I expect that to fail > > in a fresh interpreter to verify that what you see is an artifact of your > test method. > > Peter- Hide quoted text - > > - Show quoted text -
You are right: > python Python 2.2.3 (#1, Aug 8 2003, 08:44:02) [GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-13)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> os.environ["LD_LIBRARY_PATH"]='/path/Linux/rh_linux' >>> import shrink_bs_070226 Traceback (most recent call last): File "<stdin>", line 1, in ? File "shrink_bs_070226.py", line 25, in ? from qt import * ImportError: No module named qt >>> OK then I have to reformulate my question. :) In my script I have a line with os.environ["LD_LIBRARY_PATH"]='/path/Linux/rh_linux' but this line didn't work. But when I set this environment variable in Linux shell it works. Here is a small example. > python shrink_bs_070226.py Traceback (most recent call last): File "shrink_bs_070226.py", line 25, in ? from qt import * File "/path/Linux/python/rh_linux/lib/python2.2/site-packages/ qt.py", line 46, in ? import libsip ImportError: libadamsqt.so: cannot open shared object file: No such file or directory > setenv LD_LIBRARY_PATH /path/Linux/rh_linux > python shrink_bs_070226.py Starting Script "Shrinker" .... Why it's not working in script with command os.environ["LD_LIBRARY_PATH"]='/path/Linux/rh_linux' but in shell it works? I hope it's understandable. :) Thanks, boris -- http://mail.python.org/mailman/listinfo/python-list