【发布时间】:2017-02-02 07:00:12
【问题描述】:
我正在尝试在 Ubuntu 16.04 上运行带有 mod_wsgi 的烧瓶应用程序。我在设置$LD_LIBRARY_PATH$ 环境变量时遇到问题。我可以在我的~.bashrc 文件中设置它,因此我可以毫无问题地导入我的所有库和依赖项。然而,似乎 apache 似乎删除了这些环境变量。
我在日志文件中遇到的错误如下
ImportError: libmkl_rt.so: cannot open shared object file: No such file or directory
我正在导入两个需要 mkl 的 python 库。第一个似乎没有抱怨。但是由于 mkl 错误,无法导入第二个库。
我觉得这很奇怪,所以在将 $LD_RUN_PATH 环境变量设置为 mkl 路径后,我重新编译了第二个 python 库。但是还是找不到mkl。
如何相应地配置 apache?所有其他进口工作正常。我可以在没有 apache 的情况下自行运行烧瓶脚本,所以我很确定这是一个 apache 问题。
【问题讨论】:
-
如果您确信在编译任何需要
libmk_rt.so和ldd在这些二进制文件上的库或 Python 模块时正确设置了LD_RUN_PATH,则表明它在没有设置LD_LIBRARY_PATH的情况下被正确找到,问题可能是它所在的库或目录可能对 Apache 运行您的代码的用户不可读。 -
我在库上运行了 ldd 并显示了 mkl 库路径。这是什么意思?
-
我实际上意识到我在其他库上也有导入错误。好像apache找不到很多其他的python库。
标签: python apache flask mod-wsgi