0

我正在尝试使用模块ulc_width_linebreaksunilbrk我的 Python 字符串上的GNUlibunistring(一个 C 函数)调用。在 Ubuntu上可用,我已经安装了. 我打开了一个新的终端窗口并尝试从 Python 导入库。我尝试了以下但全部返回:ctypeslibunistringsudo apt install libunistring2 libunistring-devNone

ctypes.util.find_library("libunistring")
ctypes.util.find_library("libunistring2")
ctypes.util.find_library("unilbrk")
ctypes.util.find_library("unilbrk.h")
4

1 回答 1

0

您需要找到库的安装位置,您可以使用

$ dpkg -L libunistring2
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0
/usr/share
/usr/share/doc
/usr/share/doc/libunistring2
/usr/share/doc/libunistring2/changelog.Debian.gz
/usr/share/doc/libunistring2/copyright
/usr/lib/x86_64-linux-gnu/libunistring.so.2

然后加载它并像这样调用它

import ctypes
from pathlib import Path

libunistring_path = Path("/usr/lib/x86_64-linux-gnu/libunistring.so")
libunistring = ctypes.CDLL(libunistring_path)
libunistring.ulc_width_linebreaks.argtypes = [ctypes.c_char_p, ctypes.c_size_t, ctypes.c_int, ctypes.c_int, ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p]

libunistring.ulc_width_linebreaks("your args here")
于 2021-02-22T20:25:42.800 回答