在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 相关库(libc6libpthread-stubs0-dev):

sudo apt install --reinstall libc6 libpthread-stubs0-dev

重新在code中运行pyqt_graphics.py,若能正常运行则解决。


韩会会并没有解决,出现了与原来相同的报错,于是我做了下面两个实验:

  1. 在终端中可以正常运行,显示了pyqt_graphics.py中写的图形界面:
    python3 pyqt_graphics.py
    
  2. 在code中可以运行这样简单的程序:
    import os
    
    if __name__ == '__main__':
    	print('hello.world!')
    	print(f'当前工作目录是{os.getcwd()}') 
    

说明并不是原因1,查看报错信息,引出原因2。


原因2:Snap包的干扰

Python解释器

  1. 检查code使用的python解释器是不是在Snap包内。如下图,将鼠标悬停在code状态栏上显示python解释器版本号的板块,会显示这个解释器所在目录。可以看到,我的解释器与Snap无关。
    在这里插入图片描述
  2. 若你的解释器与Snap有关(在上一步中得到的路径含snap字样),则说明你正在使用的解释器是用Snap安装的,需要切换为与Snap无关的解释器。

Visual Studio Code

突然想起,我的code是用Snap安装的,所以我:

  1. 卸载了Snap安装的code
    sudo snap remove code
    
  2. 重新安装了.deb包的code (点此进入官方下载地址
  3. 在新安装的code中安装好相关扩展
    在这里插入图片描述
  4. 在新安装的code中运行pyqt_graphics.py,成功!

更多推荐