Python终端调用不';不要加载适当的库

Python终端调用不';不要加载适当的库,python,subprocess,openmpi,Python,Subprocess,Openmpi,我正在运行一个利用Fedora 20上的OpenMPI库的程序 当我从终端运行命令时: ../bin/boxfit ../settings/boxfitsettings.txt | tee boxoutput.log 这是成功的 当我通过Python控制台运行它时,我返回一个错误: os.system('../bin/boxfit ../settings/boxfitsettings2.txt | tee boxoutput.log') ../bin/boxfit: error while

我正在运行一个利用Fedora 20上的OpenMPI库的程序

当我从终端运行命令时:

../bin/boxfit ../settings/boxfitsettings.txt | tee boxoutput.log
这是成功的

当我通过Python控制台运行它时,我返回一个错误:

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))

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

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

你能做的就是举个例子

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

要获取所处位置的路径,请将其格式化到命令中

注意
subprocess.call(args,shell=True)
os.system
好,这取决于具体情况。另外,我会使用Popen实现这一点。请注意,
subprocess.call(args,shell=True)
os.system
好,这取决于具体情况。另外,我会用Popen来做这个。