我正在尝试在基于 wsgi(apache + flask)的网站中使用 python 库。
在独立命令脚本中使用库时,我必须将库路径添加到 LD_LIBRARY_PATH
所以这适用于独立脚本:
# export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
# python script.py
现在,当我尝试通过 Apache+wsgi 使用这个 python 库时,我需要将相同的路径传递给 apache worker。我怎样才能做到这一点?
最佳答案
您编译安装的 Python 模块扩展是否需要该库?如果是,请将 LD_RUN_PATH
环境变量设置为编译和安装该 Python 模块时库所在的目录。这样,该位置将嵌入到 Python 模块扩展本身中,并且您在运行时不需要 LD_LIBRARY_PATH
。
使用环境变量实现此目的的唯一其他方法是在 Apache 的启动脚本中设置 LD_LIBRARY_PATH
,以便在 Apache 启动时根据需要进行设置。这意味着摆弄系统启动脚本并不理想或不实用。
最后一种可能可行但不是很好的想法甚至可能行不通的方法是使用:
LoadFile "/usr/local/lib/libmylib.so"
在 Apache 配置中。这将在启动时强制将特定库链接到 Apache,但根据库的使用方式,这可能不起作用。
关于python - apache+wsgi网站如何设置LD_LIBRARY_PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37690980/