Python终端调用不会加载适当的库

时间:2017-02-25 22:08:17

标签: 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 loading shared libraries: libmpi_cxx.so.1: cannot open shared object file: No such file or directory

会产生同样的错误
subprocess.call(args,shell=True)

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

1 个答案:

答案 0 :(得分:0)

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

你可以做的是例如

    struct Node 
{
    Node(int a, int b, int c);
    int left;
    int right;
    int number;
};
Node::Node(int a, int b, int c)
{
    number = a;
    left = b;
    right = c;
};

int main()
{
    int n, number, left, right;
    cin >> n;
    vector <Node> BST(n);
    for (int i = 0; i < n; i++) {
        cin >> number;
        cin >> left;
        cin >> right;
        Node *leaf = new Node(number, left, right);
        BST.push_back(*leaf);
    }
    vector<Node>::iterator it;
    for (it = BST.begin(); it != BST.end(); ++it) {
        cout << it->number<<" "<<endl;
    }
    system("pause");
}

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