Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PySide2找不到Qt_5.15_Python_Linux_Docker_Qt_Pyside2 - Fatal编程技术网

Python PySide2找不到Qt_5.15

Python PySide2找不到Qt_5.15,python,linux,docker,qt,pyside2,Python,Linux,Docker,Qt,Pyside2,本周五,我的PySide2安装在Ubuntu 18.04容器(基于nvidia/opengl:1.0-glvnd-runtime-ubuntu18.04)中停止工作。我现在得到以下错误: python3 -c "from PySide2 import QtWidgets" Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: /usr/lib/x86_6

本周五,我的PySide2安装在Ubuntu 18.04容器(基于nvidia/opengl:1.0-glvnd-runtime-ubuntu18.04)中停止工作。我现在得到以下错误:

python3 -c "from PySide2 import QtWidgets"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.15' not found (required by /usr/local/lib/python3.6/dist-packages/PySide2/libpyside2.abi3.so.5.15)
(并将其添加到路径)但这没有帮助(相同的错误)

我也尝试过使用默认软件包,即
apt安装qt5 default python3 python3 pip
,但是尽管安装了pyside,但是没有找到PySide2模块,因此我也通过pip安装了它,即
python3-m pip安装-U pip&&python3-m pip安装PySide2
。但即便如此,我还是再次遇到了同样的问题。至少在这里我理解它,因为我使用存储库中的版本安装了Qt5.9.5

有人能帮我运行导入,这样我就可以像上周中旬那样再次运行PySide2绑定了吗?先谢谢你

附录 我还尝试创建一个包含以下内容的
/usr/lib/x86_64-linux-gnu/qt default/qtcooser/default.conf
文件

/opt/qt5/bin
/opt/qt5/lib
指向我手动编译的Qt,但没有用


更新:我认为这与我在编译Qt之前编译OMPL有关,Qt安装了自己的Qt版本。因此PySide2接着选择了错误的版本。但是,我一直无法将它指向正确的Qt版本。除了我已经提到的以外,有人能重述一下我需要为此设置哪些变量吗?提前感谢。

将pyside2导入置于其他导入之上:

from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
# other imports

我遇到了类似的问题-pyside2一直从/usr/lib/x86_64-linux-gnu/libQt5Core.so加载libQt5Core的5.9.5版本,即使我的venv包含正确的5.9.15版本。我将LD_LIBRARY_路径设置添加到venv/bin/activate,我的世界突然变得更好了: 紧接着

# unset PYTHONHOME if set
我补充道

if [ -n "{LD_LIBRARY_PATH:-}" ]; then
    LDLIB_PATHSEP=""
else
    LDLIB_PATHSEP=':'
fi
OLD_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH="$VIRTUAL_ENV/lib/python3.6/site-packages/PySide2/Qt/lib/${LDLIB_PATHSEP}${LD_LIBRARY_PATH}"
在deactivate()定义中,我还添加了代码来恢复任何预激活的LD_LIBRARY_路径:

if [ -n "{OLD_LD_LIBRARY_PATH:-}" ]; then
    unset LD_LIBRARY_PATH
else
    LD_LIBRARY_PATH=${OLD_LD_LIBRARY_PATH}
fi
p.S.Ubuntu 18.04;python 3.6;venv设置为:

$ python3 -m venv ~/venv_pyside2
$ ~/venv_pyside2/bin/python3 -m pip install --upgrade pip

据我所知,你想使用PySide2 5.15,但你有问题,你试过使用PySide2 5.14.2吗?很好
python3-m pip卸载PySide2&&python3-m pip安装PySide2==5.14.2
将错误更改为
ImportError:/usr/lib/x86\u 64-linux-gnu/libQt5Core.so.5:找不到版本'Qt_5.14'(由/usr/local/lib/python3.6/dist-packages/PySide2/libpyside2.so.5.14所需)
。似乎Qt没有正确注册。我还注意到,在我更复杂的图像中,我似乎缺少
qtcooser
。不知道为什么。除了PATH之外,你知道我应该尝试设置哪些环境变量吗?你有没有在ubuntu映像(没有nvidia)上尝试过?。注意:不要安装系统Qt,因为它会带来冲突,PySide2已经有了自己的QtNo,但我的问题是我需要GPU加速和CUDA。因此,如果可能的话,我希望继续使用
nvidia/opengl:1.0-glvnd-runtime-ubuntu18.04
。我可以尝试纯ubuntu进行比较,但那只是测试。我的想法是知道是谁导致了错误,所以我想降低复杂性,如果它在没有nvidia的docker中工作,那么问题是由docker的某些组件造成的。你为什么不使用虚拟电视呢?这样可以消除与OS库的冲突。
$ python3 -m venv ~/venv_pyside2
$ ~/venv_pyside2/bin/python3 -m pip install --upgrade pip