Python 终端调用未加载适当的库

Python terminal call doesn't load appropriate libraries

我正在 运行正在使用 Fedora 20 上的 OpenMPI 库的程序。

当我 运行 来自终端的命令时:

../bin/boxfit ../settings/boxfitsettings.txt | tee boxoutput.log

成功。

当我运行它通过Python控制台我return一个错误:

os.system('../bin/boxfit ../settings/boxfitsettings2.txt | tee boxoutput.log')

../bin/boxfit: error while loading shared libraries: libmpi_cxx.so.1: cannot open shared object file: No such file or directory

相同的错误结果
subprocess.call(args,shell=True)

我将路径设置为相同,因此它应该可以访问相同的库。是否有我需要注意的内部 Python 功能来解决此错误?或者它可能是一个程序编译错误,表明程序库无法与 Python 通信?

看起来它会在 Python 自己的目录中检查此文件,而不是从您当前的目录中检查。

你可以做的就是举个例子

path = os.path.abspath("..")
os.system('%s/bin/boxfit %s/settings/boxfitsettings2.txt | tee boxoutput.log' % (path, path))

要获取您所在位置的路径,然后将其格式化为您的命令