在linux上,我无法获取find_library返回找到的库名。完整文件名为 volumes:
- name: "pgdata-vol"
hostPath:
path: /tmp/vols/pgdata
,位于目录libmystuff.so
中。文档将其命名描述如下。
尝试查找库并返回路径名。 name是没有任何前缀(如lib),后缀(如.so,.dylib或版本号)的库名(这是posix链接器选项-l所使用的形式)。如果找不到库,则返回None。
我尝试使用它,如下所示,但libname始终为“ None”。
/opt/myapp/mylibs
我还尝试在shell环境中设置import ctypes
import os
from ctypes.util import find_library
os.environ['LD_LIBRARY_PATH'] = '/opt/myapp/mylibs'
libname = find_library("mystuff")
。
答案 0 :(得分:0)
您使用的docs for the old python version说:
find_library()函数的目的是以类似于编译器的方式找到库 。 [...]在Linux上,find_library()尝试运行外部程序(/ sbin / ldconfig,gcc和objdump)以查找库文件。
它不会尝试加载库,而是doesn't use LD_LIBRARY_PATH
in versions earlier than Python 3.6。
请注意文档中的其他建议:
如果使用ctypes包装共享库,则最好在开发时确定共享库名称,然后将其硬编码到包装器模块中,而不是在运行时使用find_library()来定位该库。