Я пытаюсь включить разделяемую библиотеку Matlab в python, если сначала я добавляю следующие переменные в переменную окружения, чем код python работает нормально:
$ export LD_LIBRARY_PATH=/usr/local/MATLAB/R2010b/runtime/glnxa64:/usr/local/MATLAB/R2010b/sys/os/glnxa64:/usr/local/MATLAB/R2010b/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/R2010b/sys/java/jre/glnxa64/jre/lib/amd64/server:/usr/local/MATLAB/R2010b/sys/java/jre/glnxa64/jre/lib/amd64
$ python run.py
Содержимое прогона.py
from ctypes import *
if __name__ == '__main__':
dll = CDLL("/home/robu/Documents/tmo_compile/libmatrix/distrib/libmatrix.so")
Я пытался добавить переменные этой среды в pythyon
from ctypes import *
import os
LD_LIBRARY_PATH = "/usr/local/MATLAB/R2010b/runtime/glnxa64:/usr/local/MATLAB/R2010b/sys/os/glnxa64:/usr/local/MATLAB/R2010b/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/R2010b/sys/java/jre/glnxa64/jre/lib/amd64/server:/usr/local/MATLAB/R2010b/sys/java/jre/glnxa64/jre/lib/amd64"
XAPPLRESDIR = "/usr/local/MATLAB/R2010b/X11/app-defaults"
if __name__ == '__main__':
os.environ['LD_LIBRARY_PATH'] = LD_LIBRARY_PATH
os.environ['XAPPLRESDIR'] = XAPPLRESDIR
print os.environ['LD_LIBRARY_PATH']
dll = CDLL("/home/robu/Documents/tmo_compile/libmatrix/distrib/libmatrix.so")
Но в этом случае я получаю и ошибка
OSError: libmwmclmcrrt.so: cannot open shared object file: No such file or directory
Что яделать неправильно в питоне?
ОБНОВЛЕНО
Я пробовал следующее:
if(not os.environ.has_key('LD_LIBRARY_PATH')):
os.environ['LD_LIBRARY_PATH'] = LD_LIBRARY_PATH
os.environ['XAPPLRESDIR'] = XAPPLRESDIR
os.execve('run.py', (), os.environ)
, но я получаю OSError: [Errno 2] No such file or directory