【问题标题】:How to set LD_LIBRARY_PATH with apache如何使用 apache 设置 LD_LIBRARY_PATH
【发布时间】: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.soldd 在这些二进制文件上的库或 Python 模块时正确设置了 LD_RUN_PATH,则表明它在没有设置 LD_LIBRARY_PATH 的情况下被正确找到,问题可能是它所在的库或目录可能对 Apache 运行您的代码的用户不可读。
  • 我在库上运行了 ldd 并显示了 mkl 库路径。这是什么意思?
  • 我实际上意识到我在其他库上也有导入错误。好像apache找不到很多其他的python库。

标签: python apache flask mod-wsgi


【解决方案1】:

如果在你里面

/etc/sysconfig/httpd

添加类似的东西

LD_LIBRARY_PATH=/my/library/path

然后

apachectl restart httpd

应该做的伎俩

【讨论】:

    【解决方案2】:

    apache 默认使用系统库路径。所以只需将你的so文件的链接添加到/usr/lib,然后运行命令sudo ldconfig。也许问题会解决

    这个帖子也可能有帮助https://stackoverflow.com/a/23244452/6876911

    【讨论】:

    • 如何添加链接。 mkl 在/opt 目录中
    • 我尝试了你链接的帖子并直接添加了路径但它仍然不起作用
    • @user3543300 sudo ln -s <src> <dst>。你到底做了什么剂量?
    猜你喜欢
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 2017-09-29
    • 2016-05-18
    • 1970-01-01
    相关资源
    最近更新 更多