python - 内置的Python模块sqlite3是使用全局计算机的sqlite3共享库,还是静态链接的?

标签 python linux sqlite static-linking dynamic-linking

在 Linux Ubuntu 上(使用 Python 3.5,但在较新的版本上类似),以下是内置模块 sqlite3 的调用方式:

import sqlite3 
==> sqlite3/__init__.py:    from sqlite3.dbapi2 import * 
==> sqlite3/dbapi2.py:      from _sqlite3 import * 
==> /usr/lib/python3.5/lib-dynload/_sqlite3.cpython-35m-x86_64-linux-gnu.so 

如何可靠地知道是否:

  • _sqlite3.**.so 中有静态链接的 Sqlite 库吗?

  • 或者如果_sqlite3.**.so正在调用计算机全局共享库,例如/usr/lib/x86_64-linux-gnu/libsqlite3.so?

最佳答案

实际上_sqlite3.cpython-35m-x86_64-linux-gnu.so正在使用许多共享库。

示例

 $ ldd /usr/lib64/python3.6/lib-dynload/_sqlite3.cpython-36m-x86_64-linux-gnu.so
        .
        libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007f0701a4c000)
        libpython3.6m.so.1.0 => /usr/lib64/libpython3.6m.so.1.0 (0x00007f0701577000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0701557000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f070139a000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f0701395000)
        libicui18n.so.65 => /usr/lib64/libicui18n.so.65 (0x00007f070109c000)
        libicuuc.so.65 => /usr/lib64/libicuuc.so.65 (0x00007f0700eb4000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f0700d72000)
        libintl.so.8 => /lib64/libintl.so.8 (0x00007f0700d65000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f0700d60000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0701dd3000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f0700b90000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0700b74000)
        libicudata.so.65 => /usr/lib64/libicudata.so.65 (0x00007f0700b71000)

关于python - 内置的Python模块sqlite3是使用全局计算机的sqlite3共享库,还是静态链接的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68590746/

相关文章:

python - Pandas 根据另一列的值增加计数列

linux - 如何通过 unix utils 或 nmon 使用 hadoop fs 获取磁盘信息?

linux - 使用bash将一个文件中的行内容复制到另一个文件中的特定字符位置

python - 限制终端服务器下应用程序实例数量的技术

python - 继承 View 的问题 - Odoo 模块

python - Fabric 可以使用 telnet 来执行 run() 命令吗?

linux - 如何在 Linux 上的 geany 中恢复修改后的文件?

iphone - 在代码或数据库中传播删除?

python - 命令错误 : You appear not to have the 'sqlite3' program installed or on your path

python - 我如何在 sqlite3 中搜索字符串的一部分?