2017-02-25 1 views
1

ich ein Programm laufen lasse, die die OpenMPI Bibliotheken auf Fedora nutzt 20.Python Terminal Anruf nicht geladen entsprechenden Bibliotheken

Wenn ich den Befehl vom Terminal laufen:

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

es erfolgreich ist.

Wenn ich es durch die Python-Konsole ausführen ich einen Fehler zurück:

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 

Die gleichen Fehler Ergebnisse mit

subprocess.call(args,shell=True) 

habe ich die Wege gleich eingestellt, so dass es den Zugriff auf die haben sollte gleiche Bibliotheken. Gibt es interne Python-Funktionalität, auf die ich achten muss, um diesen Fehler zu umgehen? Oder ist es vielleicht ein Programmkompilierungsfehler, der besagt, dass die Programmbibliotheken nicht mit Python kommunizieren können?

Antwort

0

Sieht aus wie es für diese Datei im Python-eigenen Verzeichnis sucht, und nicht von Ihrem aktuellen.

Was Sie tun können, ist zum Beispiel

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

Um den Pfad, wo Sie sich gerade befinden, dann ist das Format in Ihren Befehl

+0

Beachten Sie, dass 'subprocess.call (args, shell = True) 'ist besser als' os.system' ... –

+0

Das hängt wirklich davon ab. Außerdem würde ich Popen dafür benutzen. –

Verwandte Themen