繁体   English   中英

如何使用 qgis.core 修复 VS Code 中独立的 python 应用程序(导入错误:DLL 加载失败)?

[英]How do I fix (ImportError: DLL load failed while importing QtCore) for a standalone python application in VS Code using qgis.core?

我正在使用的项目工具Python 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] 我正在使用 QGIS 3.28.2 IDE : VS Code 我按照 locate press 上的指南进行操作。

想要获取大型正射影像 (>10GB),压缩它们 (<250MB),然后使用 QGIS GUI 显示它们,最后使用一些遮罩和提取工具来处理它们。

我需要的是有人告诉我如何设置我的环境和 IDE 来导入 QGIS 库。

错误代码

PS C:\Users\pkmos\OneDrive\Desktop\DIYGIS> & "C:/Program Files/QGIS 3.28.0/bin/python.exe" c:/Users/pkmos/OneDrive/Desktop/DIYGIS/appl.py
Traceback (most recent call last):
  File "c:\Users\pkmos\OneDrive\Desktop\DIYGIS\appl.py", line 2, in <module>
    import qgis
  File "C:\Program Files\QGIS 3.28.0\apps\qgis\python\qgis\__init__.py", line 78, in <module>
    from qgis.PyQt import QtCore
  File "C:\Program Files\QGIS 3.28.0\apps\qgis\python\qgis\PyQt\QtCore.py", line 24, in <module>
    from PyQt5.QtCore import *
ImportError: DLL load failed while importing QtCore: The specified procedure could not be found.

剧本

import sys
import qgis

from PyQt5.QtWidgets import QApplication, QWidget, QLabel

def window():
   app = QApplication(sys.argv)
   widget = QWidget()

   textLabel = QLabel(widget)
   textLabel.setText("Hello World!")
   textLabel.move(110,85)

   widget.setGeometry(50,50,320,200)
   widget.setWindowTitle("PyQt5 Example")
   widget.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

环境

PATH=$PATH;"C:\OSGeo4W\bin";"C:\OSGeo4W\apps\qgis";"C:\OSGeo4W\apps\qgis\bin";"C:\OSGeo4W\apps\Qt5\bin";"C:\OSGeo4W\apps\Python39\Scripts";"C:\OSGeo4W\apps\Qt5\bin"
PYTHONPATH="C:\OSGeo4W\apps\qgis\python"
PYTHONHOME="C:\OSGeo4W\apps\Python39"

工作区

{
    "folders": [
        {
            "name": "app",
            "path": "C:/Users/pkmos/OneDrive/Desktop/DIYGIS"
        }
    ]
}

进展我已经使用 GDAL 库计算出压缩。 但是 QGIS GUI 不会在我的独立应用程序中打开。 我尝试将许多不同的文件夹添加到系统环境变量中。 我将张贴一些图片向您展示我们正在处理的内容。 我已经检查以确保我使用的是正确版本的 QGIS 和 Python。

小路

蟒蛇路径

文件夹 2

文件夹 3

文件夹 4

文件夹 5

文件夹 6

我需要的帮助我的技能很少:(。如果有人能给我指出正确的方向来设置我的 IDE VS 代码以导入 qgis.core 库,我想我可以构建程序的 rest。我如何创建制作使用 QGIS GUI 的独立 python 应用程序的正确环境?

好吧,我可能在发帖之前独自解决了这个问题 5 个小时,然后我想我刚刚找到了答案。

我用这段代码创建了一个 bat 文件并运行它,然后打开我原来的 appl.py 文件并运行它,它打开了带有 hello world 的 GUI window。

@echo off
path %PATH%;C:\Program Files\QGIS 3.28.0\bin
path %PATH%;C:\Program Files\QGIS 3.28.0\apps\grass\grass78\lib
path %PATH%;C:\Program Files\QGIS 3.28.0\apps\Qt5\bin
path %PATH%;C:\Program Files\QGIS 3.28.0\apps\Python39\Scripts

set PYTHONPATH=%PYTHONPATH%;C:\Program Files\QGIS 3.28.0\apps\qgis\python
set PYTHONHOME=C:\Program Files\QGIS 3.28.0\apps\Python39

start "VisualStudioCode for QGIS" /B "C:\Users\pkmos\AppData\Local\Programs\Microsoft VS Code\Code.exe" %*

因此,如果有人仍然想发表评论并告诉我我做错的所有事情以及我如何不知道环境变量是什么,请这样做。

我希望这能帮助像我这样的其他菜鸟!

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM