0

我最近尝试制作一个 PyQt5 Web 浏览器。在我使用虚拟环境运行代码之前,它一直显示错误。现在我想在没有虚拟环境的情况下运行代码,但它只显示此错误:

Traceback (most recent call last):
  File "Browser.py", line 2, in <module>
    from PyQt5.QtCore import *
ImportError: DLL load failed while importing QtCore: The specified module could not be found.

我的代码如下所示:

import sys
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtWidgets import QApplication

url = "https://stackoverflow.com/"

app = QApplication(sys.argv)
 
web = QWebEngineView()
web.load(QUrl(url))
web.setZoomFactor(2)
web.zoomFactor()
web.show()
 
sys.exit(app.exec_())

如您所知,我使用的是 Windows 10(64 位)和 Python 3.8.5。

4

2 回答 2

0

我认为在没有虚拟环境的情况下运行需要一个或多个第三方包的复杂 Python 应用程序不是一个好主意。起初它可能看起来更容易,但最终会变得一团糟,当你开始另一个项目时,它可能会陷入无数冲突。因此,花点时间了解虚拟环境的基础知识,从 Python 标准库附带的官方方法开始。您可以在这里了解更多信息:

https://docs.python.org/3/library/venv.html

1. 在当前文件夹中创建一个新的虚拟环境,将所有需要的东西放在一个名为“venv”的子文件夹中:

C:> python3.8 -m venv venv

2.激活虚拟环境:

A. 使用 cmd

C:> venv\Scripts\activate.bat

B. 使用 PowerShell

C:> venv\Scripts\Activate.ps1

C:在 macOS 或 Linux 中:

$ source venv/bin/activate

3.安装第三方包

$ python3.8 -m  pip install PACKAGE_NAME

然后您可以编辑并运行该应用程序,它将使用这些包,以及您安装的特定版本(可能与您在同一系统中的其他项目中使用的版本不同。

4.停用虚拟环境

当您完成并想要离开虚拟环境时,您只需键入以下命令:

C:> deactivate

但是,如果您迟早要构建这样的应用程序,您将需要打包该应用程序并添加一个 setup.py 文件,以便使用 pip 安装它,谁知道呢,甚至可以将它分发给 PyPI.org 中的其他用户,如果这是你的意图。

从这里开始:

https://packaging.python.org/guides/

https://packaging.python.org/tutorials/packaging-projects/

https://packaging.python.org/guides/distributing-packages-using-setuptools/

于 2020-10-17T23:20:01.743 回答
0

我刚刚意识到我可以把我的 python 文件变成一个 exe 文件。我像这样使用 Pyinstaller:

pyinstaller --onefile --noconsole Browser.py

它奏效了!所以,如果有人想尝试,请成为我的客人。只要确保您在虚拟环境中执行此操作,否则我无法保证成功。您还需要在虚拟环境中下载 Pyinstaller。

警告: EXE 应用程序仅适用于一个文件,而且加载速度也很慢。请记住在运行应用程序时记住这一点!

于 2020-10-18T18:29:08.383 回答