我最近尝试制作一个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。
答案 0 :(得分:0)
我认为运行一个需要一个或几个第三方程序包而没有虚拟环境的复杂Python应用程序不是一个好主意。最初看似容易,但最终会变得一团糟,当您启动另一个项目时,它可能会陷入无数冲突。因此,从Python标准库附带的官方方法开始,花点时间了解虚拟环境的基础。您可以在这里了解更多信息:
https://docs.python.org/3/library/venv.html
C:> python3.8 -m venv venv
C:> venv\Scripts\activate.bat
C:> venv\Scripts\Activate.ps1
$ source venv/bin/activate
$ python3.8 -m pip install PACKAGE_NAME
然后,您可以编辑并运行该应用程序,它将使用这些软件包以及已安装的特定版本(可能与您在同一系统中其他项目中使用的版本不同)。
完成后想离开虚拟环境,只需输入以下命令:
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/
答案 1 :(得分:0)
我刚刚意识到我可以将python文件转换为exe文件。我这样使用Pyinstaller:
pyinstaller --onefile --noconsole Browser.py
它起作用了!因此,如果有人想尝试一下,请成为我的客人。只要确保您在虚拟环境中执行此操作,否则我不能保证成功。您还需要在虚拟环境中下载Pyinstaller。
警告::EXE应用程序仅在只有一个文件的情况下才能运行,并且加载速度也很慢。运行应用程序时请记住这一点!