Я витратив досить багато часу на пошуки чіткої відповіді на цю тему, і досі не в змозі реально здійснити свою мету отримати доступ до PyQGIS в самостійному сценарії.
Частини відповідей були надані на багато різних питань, таких як:
Автономні програми, що використовують QGIS та змінні середовища
pyQgis в окремому сценарії, помилка завантаження вектора
Написання автономних сценаріїв Python за допомогою PyQGIS?
Найбільш thourough Відповідь , який я знайшов був наданий @gene тут .
Що мене особливо цікавить, - це можливість писати сценарії, які можуть викликати як Arcpy, так і PyQGIS. Я встановив системні змінні PATH та PYTHONPATH відповідно до документації з кулінарної книги PyQGIS як:
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. Оптимальним сценарієм для мене було б використання IDLE в папці ArcGIS 10.2 для запуску попереднього коду. Я використовую машину 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.