我花了很多时间来寻找这个主题的明确答案,但仍然无法真正实现以独立脚本访问PyQGIS的目标。
已针对许多不同的问题提供了部分答案,例如:
我发现的最困难的答案是@gene 在这里提供的。
我特别感兴趣的是能够编写可以在Arcpy和PyQGIS上调用的脚本。我已经根据PyQGIS Cookbook文档将PATH和PYTHONPATH系统变量设置为:
C:\OSGeo4W\apps\qgis\bin,%PATH%;C:\Python27\ArcGIS10.2\Lib\site-packages\PyQt4;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\
和
C:\OSGeo4W\apps\qgis\python; C:\OSGeo4W\apps\Python27\Lib\site-packages
分别。
我从以下脚本开始:
from qgis.core import *
QgsApplication.setPrefixPath("C:\OSGeo4W\bin\qgis.bat", True)
QgsApplication.initQgis()
# or your solution
# read a shapefile
layer = QgsVectorLayer('H:\DATA\Airfields_AB.shp', 'Airfields', 'ogr')
layer.isValid()
True
# loop through layer
for elem in layer.getFeatures():
geom= elem.geometry()
attr =elem.attributes()
(processing)
我希望避免设置适当设置的批处理脚本,而是从Python脚本内部调用它们。对我而言,最佳方案是使用ArcGIS 10.2文件夹中的IDLE运行前面的代码。我正在将Windows 7计算机与ArcGIS 10.2和QGIS 2.01一起使用。
当前,此代码的结果是:
Traceback (most recent call last):
File "F:\Users\...\PyQGIS_Test_01.py", line 1, in <module>
from qgis.core import *
ImportError: DLL load failed: The specified module could not be found.