Ich versuche, eine Flashmaske mit mod_wsgi auf Ubuntu 16.04 zu laufen. Ich habe ein Problem beim Einstellen der Umgebungsvariablen $LD_LIBRARY_PATH$
. Ich kann das in meiner ~.bashrc
Datei einstellen, und dadurch bin ich in der Lage, alle meine Bibliotheken und Abhängigkeiten ohne ein Problem zu importieren. Es scheint jedoch, dass Apache diese Umgebungsvariablen zu löschen scheint.Wie man LD_LIBRARY_PATH mit Apache setzt
Der Fehler ich in meiner Protokolldatei immer ist die folgende
ImportError: libmkl_rt.so: cannot open shared object file: No such file or directory
Es gibt zwei Python-Bibliotheken, die ich importieren bin, dass erfordern mkl. Der erste scheint sich nicht zu beklagen. Die zweite Bibliothek kann jedoch aufgrund des MKL-Fehlers nicht importiert werden.
Ich finde dieses ungerade, also habe ich die zweite Python-Bibliothek neu kompiliert, nachdem ich die Umgebungsvariable $LD_RUN_PATH
auf die mkl-Pfade gesetzt habe. Es ist jedoch immer noch nicht in der Lage, mkl zu finden.
Wie konfiguriere ich Apache entsprechend? Alle anderen Importe funktionieren gut. Ich bin in der Lage, die flask-Skripte selbstständig ohne Apache laufen zu lassen, also bin ich mir ziemlich sicher, dass das ein Apache-Problem ist.
Wenn Sie sicher sind Sie setzen '' LD_RUN_PATH'' richtig, wenn alle Bibliotheken oder Python-Module kompiliert, die benötigt '' libmk_rt.so'' und '' ldd Auf diesen Binärdateien wird angezeigt, dass sie korrekt gefunden wurde, ohne dass "LD_LIBRARY_PATH" gesetzt wurde. Das Problem könnte sein, dass die Bibliothek oder das Verzeichnis, in dem sie sich befindet, für den Benutzer nicht lesbar ist, auf dem Apache den Code ausführt. –
Ich rannte ldd auf der Bibliothek und der mkl Bibliothekspfad zeigte sich. Was bedeutet das? – user3543300
Ich erkannte tatsächlich, dass ich Importfehler auch in anderen Bibliotheken habe. Es scheint, dass Apache nicht viele andere Python-Bibliotheken finden kann. – user3543300