Python终端调用不';不要加载适当的库
我正在运行一个利用Fedora 20上的OpenMPI库的程序 当我从终端运行命令时: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
../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来做这个。