VS Code Jupyter集成未识别自定义LD_LIBRARY_PATH问题求助
我在运行Amazon Linux 2的EC2实例上搭建开发环境:
- 从源码编译安装新版SQLite3,设置
LD_LIBRARY_PATH环境变量为"/usr/local/lib" - 通过
LDFLAGS和CPPFLAGS参数安装Python 3.10.5,确保其能加载新的SQLite库
终端中运行Jupyter Notebook服务器或Prefect Orion服务器均正常,但使用VS Code内置Jupyter环境时,内核无法启动,报错:
Failed to start the Kernel.
ImportError: /home/mickelj/.pyenv/versions/3.10.5/lib/python3.10/lib-dynload/_sqlite3.cpython-310-x86_64-linux-gnu.so: undefined symbol: sqlite3_trace_v2.
该错误与取消设置LD_LIBRARY_PATH时的报错一致,推测VS Code使用了系统默认的SQLite库。但执行以下命令检查时,结果显示Python的_sqlite3模块已正确引用新的SQLite3库:
ldd /home/mickelj/.pyenv/versions/3.10.5/lib/python3.10/lib-dynload/_sqlite3.cpython-310-x86_64-linux-gnu.so
输出:
linux-vdso.so.1 (0x00007ffcde9c8000)
libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0 (0x00007f96a3339000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f96a311b000)
libc.so.6 => /lib64/libc.so.6 (0x00007f96a2d6e000)
libz.so.1 => /lib64/libz.so.1 (0x00007f96a2b59000)
libm.so.6 => /lib64/libm.so.6 (0x00007f96a2819000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f96a2615000)
/lib64/ld-linux-x86-64.so.2 (0x00007f96a3870000)
取消设置LD_LIBRARY_PATH后,ldd输出中的SQLite路径变为系统库路径:
libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007f9dce52e000)
推测VS Code的Jupyter集成未正确读取环境变量,请问能否全局为VS Code或其内置Jupyter服务器指定LD_LIBRARY_PATH等环境变量来解决该问题?
内容的提问来源于stack exchange,提问作者the_man_in_black

