这是我的情况。我正在运行 Centos 7,有我的包管理器提供的 libcurl 标准版本,以及几个依赖于 libcurl 的程序。
其中之一是 pycurl,它是 libcurl 的 python 绑定。我认为它在 python 运行时动态加载 libcurl ?
我希望 pycurl 使用 libcurl 的自定义版本,而所有其他程序都使用标准版本。我怎样才能做到这一点?
答案1
我认为它在 python 运行时动态加载 libcurl ?
是的。
我希望 pycurl 使用 libcurl 的自定义版本,而所有其他程序都使用标准版本。
确保您的 libcurl 未安装到标准库路径之一,包括/usr/local/lib
.如果是/opt/curl/lib
,在运行 python 之前:
export LD_LIBRARY_PATH=/opt/curl/lib:$LD_LIBRARY_PATH
目前很可能尚未定义,但最后一部分 ( :$LD_LIBRARY_PATH
) 存在以防万一。这会覆盖链接器/加载器使用的标准搜索路径,因此如果其中有兼容的 libcurl,则会加载该路径。
您应该能够通过随后ldd
在 pycurl 模块二进制文件上运行来检查这一点,无论它在哪里。