首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未为PyQt5找到共享库:libxcb-xinama.so.0 =>未找到

未为PyQt5找到共享库:libxcb-xinama.so.0 =>未找到
EN

Ask Ubuntu用户
提问于 2020-12-09 03:40:32
回答 3查看 14.8K关注 0票数 4

我正在为我的开发设置一个python3虚拟环境,所以我将远离包管理器apt-install。

代码语言:javascript
复制
$ python3 -m venv . # create my environment in my working directory

然后我启动了venv并安装了pyqt5。

代码语言:javascript
复制
$ source bin/activate
$ pip install PyQt5

我收到了成功安装的通知,PyQt5和PyQt5 5-Sip出现在我的pip列表中。

当我构建一个示例应用程序时,我会收到以下错误:

代码语言:javascript
复制
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/path/to/venv/lib/python3.8/site-packages/PyQt5/Qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.

Aborted (core dumped)

我导出了环境变量以进行调试。

代码语言:javascript
复制
export QT_DEBUG_PLUGINS=1

我尝试再次运行我的应用程序,下面是我在链接器中得到的具体错误

代码语言:javascript
复制
QFactoryLoader::QFactoryLoader() looking at "/path/to/venv/lib/python3.8/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so"
Found metadata in lib /path/to/venv/lib/python3.8/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "archreq": 0,
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
Cannot load library /path/to/venv/lib/python3.8/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libxcb-xinerama.so.0: cannot open shared object file: No such file or directory)

这里最重要的错误是

代码语言:javascript
复制
libxcb-xinerama.so.0: cannot open shared object file: No such file or directory

所以我挖得更深了。我决定使用ldd命令来解析共享库依赖项。

代码语言:javascript
复制
$ ldd /path/to/venv/lib/python3.8/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so

瞧--瞧:

代码语言:javascript
复制
libxcb-xinerama.so.0 => not found
libxcb-xinerama.so.0 => not found

在libqxcb共享库依赖项列表中缺少这些共享库。我希望pip的安装会包括这个,但它不是。我在任何地方都没有找到这个问题的解决方案,而且我已经找到了一些使用apt-install来解决这些问题的资源。我不想改变我的系统,我更喜欢保持沙箱。

我能做些什么来解决这种依赖呢?

EN

回答 3

Ask Ubuntu用户

发布于 2021-10-12 10:55:14

同样的问题发生在我在Ubuntu20.04上安装pyqt5matplotlib时,使用的是pipenv (这也创建了一个venv)。

在我的系统中,通过安装缺少的libxcb-xinerama0,使用apt轻松地解决了这一问题:

代码语言:javascript
复制
sudo apt install libxcb-xinerama0
票数 3
EN

Ask Ubuntu用户

发布于 2021-03-23 03:59:36

我在Ubuntu18.04.3上遇到了同样的问题。以下是我解决这个问题的方法。

使用PyQt卸载pip3

代码语言:javascript
复制
pip3 uninstall pyqt5

并通过apt-get安装

代码语言:javascript
复制
sudo apt-get install python3-pyqt5
票数 1
EN

Ask Ubuntu用户

发布于 2020-12-10 02:44:32

我也没找到他们。我认为您要么从源代码(https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.14.tar.xz)编译它并链接到它,要么安装libxcb-xinerama0

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1298645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档