小编Mir*_*rah的帖子

Pyinstaller 和 Tesseract OCR

我的程序使用 Tesseract OCR,我将使用 pyinstaller 将其转换为单个 .exe 文件。问题是,为了让 Tesseract 工作,我需要引用我的计算机上安装的程序的路径,如下所示:pytesseract.pytesseract.tesseract_cmd = 'E:\\Tesseract-OCR\\tesseract'

由于这不仅仅是一个可以导入的单独库,而且是一个独立程序,因此我无法将其作为“--add_data”参数传递给 pyinstaller。那么如何制作一个单文件可执行文件呢?

python ocr tesseract pyinstaller python-tesseract

4
推荐指数
1
解决办法
7453
查看次数

如何通过 Typing.Union 在 pydantic.BaseModel 中使用两种变量类型?

我需要我的模型接受字节类型变量或字符串类型变量,并在传递任何其他类型时引发异常。

from typing import Union

from pydantic import BaseModel


class MyModel(BaseModel):
    a: Union[bytes, str]


m1 = MyModel(a='123')
m2 = MyModel(a=b'123')

print(type(m1.a))
print(type(m2.a))
Run Code Online (Sandbox Code Playgroud)

就我而言,模型将字节和字符串解释为字节。

输出:

<class 'bytes'>
<class 'bytes'>
Run Code Online (Sandbox Code Playgroud)

期望的输出:

<class 'str'>
<class 'bytes'>
Run Code Online (Sandbox Code Playgroud)

如果我重新分配成员 a,则可以实现上述所需的输出:

<class 'bytes'>
<class 'bytes'>
Run Code Online (Sandbox Code Playgroud)

可以一次性拿到吗?

python python-typing pydantic

4
推荐指数
1
解决办法
3855
查看次数

PyQt 从 URL 加载图像到 QPixmap 会导致冻结和崩溃

我制作了一个应用程序,可以从网站收集图像的 URL,并将它们一一显示出来。然而,当您使用 QComboBox 滚动浏览图像时,程序会冻结 2-3 秒,这很烦人,因为有超过 100 个 URL 需要滚动。如果您尝试快速滚动,应用程序就会崩溃。图片甚至没有那么大(不到300KB),网络连接足够好。有什么解决方案可以解决这个问题吗?

这是代码片段:

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import urllib.request
import sys

class MainWindow(QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)
        self.setWindowTitle(" ")
        lo2 = QVBoxLayout()




        self.pixmap = QPixmap()

        self.widgetIMG = QLabel()
        self.widgetIMG.setAlignment(Qt.AlignHCenter)

        self.widgetList = QComboBox()
        self.widgetList.addItems(['first image','second image', 'third image'])
        self.widgetList.currentIndexChanged.connect(self.Display)
        self.url_list = ['http://cards.hearthcards.net/3062325e.png', 'http://cards.hearthcards.net/4fc517c5.png', 'http://cards.hearthcards.net/6c9f07e2.png']


        lo2.addWidget(self.widgetIMG)
        lo2.addWidget(self.widgetList)
        widget = QWidget()             
        widget.setLayout(lo2)  
        self.setCentralWidget(widget)

    def Display(self, id):
        print(id)
        URL = self.url_list[id]
        img = urllib.request.urlopen(URL).read()

        self.pixmap.loadFromData(img) …
Run Code Online (Sandbox Code Playgroud)

pyqt freeze qpixmap qlabel pyqt5

2
推荐指数
1
解决办法
1839
查看次数