编写独立的PyQGIS脚本时导入qgis.core的问题


18

我试图在Windows 7中使用qgis.core和其他各种qgis库编写一个独立的python脚本。

我在这里发现了一个有关此主题的老问题:使用PyQGIS编写独立的Python脚本吗?并通过使用以下指南来遵循其建议:http : //docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-applications

建议的代码为:

set PYTHONPATH=c:\qgispath\python

其次是:

set PATH=C:\qgispath;%PATH%

我发现IDLE不喜欢“开始时设置”,因此我的代码如下所示:

PYTHONPATH="C:\OSGeo4W64\apps\qgis\python"
PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
import qgis.core

我得到:

Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core

我已经尝试过所有可以想到的路径变体,包括最后删除;%PATH%“(看起来有点多余),但无法找到更多信息。有人对我可能有的想法有什么想法吗?出问题了吗?

编辑:

看到Luigi Pirelli的评论后,我现在尝试:

>>> PYTHONPATH="C:/OSGEO4~1/apps/qgis/./python\qgis"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:/OSGEO4~1/apps/qgis/./python\qgis\core;%PATH%"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> 

您能否以概述您所面临的确切问题的方式修改问题的标题?
SS_Rebelious 2015年

将PYTHONPATH设置为您可以在QGIS Python控制台中键入“ qgis”来读取的值。该值是什么?就我而言:<module'qgis'from'C:/ OSGEO4〜1 / apps / qgis-dev /./ python \ qgis_ init_ .pyc'> =>我必须在PYTHONPATH中添加路径:“ C:/ OSGEO4〜1 / apps / qgis-dev /./ python \ qgis“
Luigi Pirelli

修改标题,谢谢,我将尝试尝试此方法,并在问题的主体中进行报告
user24956

1
还是没有运气,我尝试了PATH和PYTHONPATH的许多排列都无济于事。
user24956 '01

Answers:


12

如果您通过OSGeo4W安装了QGIS,建议您遵循以下工作流程(我刚刚在Windows 7上对其进行了测试):

  1. 打开OSGeo4W ShellStart->All programs->OSGeo4W->OSGeo4W Shell

  2. 设置环境变量。我的首选方法是从OSGeo4W Shell 执行此bat文件(更新至2016.11.03:此bat文件)。如您所见,该文件通过以下方式设置环境变量:

    set PYTHONPATH=%OSGEO4W_ROOT%\\apps\\qgis\\python
    set PATH=%OSGEO4W_ROOT%\\apps\\qgis\\bin;%PATH%

    当然,您需要自己检查操作系统中是否存在这些路径,并在必要时进行调整。

    因此,下载.bat文件并通过从OSGeo4W Shell访问该文件并按Enter来执行它。

    在此处输入图片说明

  3. 通过以下方法之一导入PyQGIS库:

    一种。输入Python解释器。python在OSGeo4W Shell中运行,然后手动导入库。

    在此处输入图片说明

    b。执行一个Python脚本。python my_pyqgis_script.py在OSGeo4W Shell中运行。我将从一个非常简单的开始。

    在此处输入图片说明

该工作流程是几年前在GeoTux上发布的(西班牙语),现在仍然有效。如您所见,我没有在Python脚本中包含环境变量,而是在OSGeo4W Shell中进行设置。


嗨!我对此表示怀疑。为什么选择var_entorno_osgeo4w.bat?我做了所有这些行,但是在这个方面给了我一个错误。我也阅读了这些帮助论坛,但仍然收到导入qgis.core错误(在osgeo4w shell中运行)。
芭芭拉·杜阿尔特

因为那是我提供给您的用于设置环境变量的文件的名称。因此,您转到该.bat文件所在的文件夹(在您所看到的图像中C:\dllo),并通过输入文件名并按Enter来运行.bat文件。
赫尔曼·卡里略

我尝试使用上述解决方案-我尝试运行my_pygis_script.py并收到导入错误:没有名为qgis.core的模块。我怎样才能解决这个问题?
kflaw 2015年

我也尝试在pyscripter中导入qgis.core,但又收到另一个导入错误:没有名为sip的模块
kflaw

1
如果尝试这里建议的方法,我将得到“没有名为qgis.core的模块”。如果我在qgis / bin中使用python.exe作为解释器,则在尝试导入qgis.core时出现“没有名为站点的模块”错误。我浪费了很多时间尝试使用pyqgis。
亚历山大

6

我一直在努力解决类似的问题,并且注意到OSGeo4W \ bin文件夹中的一个名为python-qgis.bat的批处理文件。这是Windows 10上基于OSGeo4W软件包的QGIS 2.18.15 x64安装的一部分。

执行时,此批处理文件将打开Python解释器。import qgis从内部成功运行。

该批处理文件包含以下行(如GermánCarrillo在其原始答案中所述):

set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python;%PYTHONPATH%

在python解释器启动之前。


这减轻了手动配置环境变量的痛苦,谢谢
Hicham Zouarhi

这似乎开始工作,但在运行C:\ OSGEO4〜1 \ apps \ Python37 \ lib \ site.py
Donny V.

我收到该错误的原因是因为我没有运行QGIS使用的python。现在工作!
Donny V.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.