简体   繁体   English

PyQT5 不适用于 docker 导入错误:libsmime3.so:无法打开共享 object 文件:没有这样的文件或目录

[英]PyQT5 doesn't work on docker ImportError: libsmime3.so: cannot open shared object file: No such file or directory

I have a Dockerfile with PyQT installed like below我有一个 Dockerfile 和 PyQT 安装如下

FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN adduser --quiet --disabled-password qtuser && usermod -a -G audio qtuser
RUN apt-get update -y \
    && apt-get install alsa -y \
    && apt-get install -y python3-pyqt5 \
    && apt-get install python3-pip -y && \
    pip3 install pyqtwebengine
WORKDIR /htmltopdf

I built my image like this docker build -t html-to-pdf.我像这样构建图像docker build -t html-to-pdf.

Then I ran my image like this docker run --rm -v "$(pwd)":/htmltopdf -u qtuser -it html-to-pdf python3 htmlToPdfnew.py --url https://www.w3schools.com/howto/howto_css_register_form.asp然后我像这样运行图像docker run --rm -v "$(pwd)":/htmltopdf -u qtuser -it html-to-pdf python3 htmlToPdfnew.py --url https://www.w3schools.com/howto/howto_css_register_form.asp

But I'm getting below error但是我遇到了以下错误

Traceback (most recent call last):
  File "htmlToPdfnew.py", line 2, in <module>
    from PyQt5 import QtWidgets, QtWebEngineWidgets
ImportError: libsmime3.so: cannot open shared object file: No such file or directory

I do NOT get that error in my PC.我的 PC 中没有出现该错误。

below is my python code下面是我的 python 代码

import sys
from PyQt5 import QtWidgets, QtWebEngineWidgets
from PyQt5.QtCore import QUrl, QTimer
from PyQt5.QtGui import QPageLayout, QPageSize
from PyQt5.QtWidgets import QApplication
import argparse


def main():
    url = ''
    parser = argparse.ArgumentParser(description="Just an example", formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    parser.add_argument("--url", help="Type url")
    args = parser.parse_args()
    config = vars(args)
    url = config['url']


    app = QtWidgets.QApplication(sys.argv)
    loader = QtWebEngineWidgets.QWebEngineView()
    loader.setZoomFactor(1)
    layout = QPageLayout()
    layout.setPageSize(QPageSize(QPageSize.A4Extra))
    layout.setOrientation(QPageLayout.Portrait)
    loader.load(QUrl(url))
    loader.page().pdfPrintingFinished.connect(lambda *args: QApplication.exit())

    def emit_pdf(finished):
        QTimer.singleShot(2000, lambda: loader.page().printToPdf("test.pdf", pageLayout=layout))

    loader.loadFinished.connect(emit_pdf)
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

so how do I resolve below error?那么如何解决以下错误?

Traceback (most recent call last):
  File "htmlToPdfnew.py", line 2, in <module>
    from PyQt5 import QtWidgets, QtWebEngineWidgets
ImportError: libsmime3.so: cannot open shared object file: No such file or directory

You have to install libnss3 in the Docker image.您必须在 Docker 映像中安装 libnss3。

Adding apt-get install libnss3 to your installation commands in the Dockerfile should do the trick.apt-get install libnss3添加到Dockerfile中的安装命令中应该可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ImportError:libGL.so.1:无法打开共享 object 文件:没有这样的文件或目录:HyperV Docker - ImportError: libGL.so.1: cannot open shared object file: No such file or directory: HyperV Docker ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory when importing cv2 using Docker container - ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory when importing cv2 using Docker container ImportError:libcublas.so.8.0:无法打开共享对象文件:没有这样的文件或目录(共享Linux) - ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory (Shared Linux) 正在获取ImportError:libcublas.so.9.0:无法打开共享对象文件:没有这样的文件或目录-降级TF版本不起作用 - Getting ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory - downgrading TF version does not work 我在我的Pixelbook上安装了Anaconda3,但是Spyder无法工作…ImportError:libGL.so.1:无法打开共享对象文件:没有这样的文件或目录 - I install Anaconda3 on my pixelbook, but Spyder can't work…ImportError: libGL.so.1: cannot open shared object file: No such file or directory 导入错误:libkea.so.1.4.7:无法打开共享对象文件:没有这样的文件或目录 - ImportError: libkea.so.1.4.7: cannot open shared object file: No such file or directory ImportError:libgomp.so.1:无法打开共享对象文件:没有这样的文件或目录 - ImportError: libgomp.so.1: cannot open shared object file: No such file or directory 导入错误:libavcodec.so.57:无法打开共享对象文件:没有那个文件或目录 - ImportError: libavcodec.so.57: cannot open shared object file: No such file or directory Google Colaboratory ImportError:libcublas.so.10.0:无法打开共享对象文件:运行时没有这样的文件或目录 - Google Colaboratory ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory when running 导入错误:libtk8.6.so:无法打开共享对象文件:没有那个文件或目录 - ImportError: libtk8.6.so: cannot open shared object file: No such file or directory
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM