【报错】symbol lookup error: /snap/... undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE
·
在Visual Studio Code(简称code)中运行pyqt_graphics.py(顾名思义,是一个使用了PyQt6库的程序,可以开发图形界面),code自带终端中显示如下信息:
user@localhost:~/桌面$ /usr/bin/env /bin/python3 /home/user/.vscode/extensions/ms-python.debugpy-2025.6.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher 36387 -- /home/user/桌面/pyqt_graphics.py
/bin/python3: symbol lookup error: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE
原因1:GLIBC 版本冲突,部分库文件被损坏
重新安装 GLIBC 相关库(libc6和libpthread-stubs0-dev):
sudo apt install --reinstall libc6 libpthread-stubs0-dev
重新在code中运行pyqt_graphics.py,若能正常运行则解决。
韩会会并没有解决,出现了与原来相同的报错,于是我做了下面两个实验:
- 在终端中可以正常运行,显示了
pyqt_graphics.py中写的图形界面:python3 pyqt_graphics.py - 在code中可以运行这样简单的程序:
import os if __name__ == '__main__': print('hello.world!') print(f'当前工作目录是{os.getcwd()}')
说明并不是原因1,查看报错信息,引出原因2。
原因2:Snap包的干扰
Python解释器
- 检查
code使用的python解释器是不是在Snap包内。如下图,将鼠标悬停在code状态栏上显示python解释器版本号的板块,会显示这个解释器所在目录。可以看到,我的解释器与Snap无关。

- 若你的解释器与
Snap有关(在上一步中得到的路径含snap字样),则说明你正在使用的解释器是用Snap安装的,需要切换为与Snap无关的解释器。
Visual Studio Code
突然想起,我的code是用Snap安装的,所以我:
- 卸载了
Snap安装的codesudo snap remove code - 重新安装了
.deb包的code(点此进入官方下载地址) - 在新安装的
code中安装好相关扩展

- 在新安装的
code中运行pyqt_graphics.py,成功!
更多推荐

所有评论(0)