Hem Arcpy hem de PyQGIS'i çağırabilecek komut dosyaları mı yazıyorsunuz?


11

Bu konuya net bir cevap aramak için biraz zaman harcadım ve hala tek başına bir senaryoda PyQGIS'e erişme hedefime ulaşamadım.

Yanıtların bir kısmı aşağıdaki gibi birçok farklı soruda verilmiştir:

QGIS ve ortam değişkenlerini kullanan bağımsız uygulamalar

tek başına komut dosyasında pyQgis, vektör yükleme hatası

PyQGIS kullanarak bağımsız Python betikleri mi yazıyorsunuz?

Bulduğum en güzel cevap burada @gene tarafından sağlandı .

Özellikle ilgilendiğim şey, hem Arcpy hem de PyQGIS için çağrılabilecek komut dosyaları yazabilmektir. PyQGIS yemek kitabı belgelerine göre hem PATH hem de PYTHONPATH sistem değişkenlerini ayarladım:

 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\

ve

C:\OSGeo4W\apps\qgis\python; C:\OSGeo4W\apps\Python27\Lib\site-packages

Sırasıyla.

Bu script ile başlıyorum:

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)

Uygun ayarları yapan toplu komut dosyalarından kaçınmak yerine Python betiğinin içinden çağırmak istiyorum. Benim için en uygun senaryo, önceki kodu çalıştırmak için ArcGIS 10.2 klasöründeki IDLE'yi kullanmak olacaktır. ArcGIS 10.2 ve QGIS 2.01 ile bir Windows 7 makinesi kullanıyorum.

Şu anda bu kodun sonuçları:

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.

Yanıtlar:


4

PATH ortam değişkeninizin python dll'lerinin bulunduğu klasörü içerdiğinden emin olmanız gerekir. Genellikle [QGIS_install_folder] \ apps \ qgis \ bin altında ör.

C:\Program Files (x86)\QGIS Valmiera\apps\qgis\bin

Ayrıca, PyScripter'ı şimdi Windows Quite eski yayınında QGIS ile kullanmak (ve hala arcpy kullanmak) için bir göz atın , ancak size neyin ayarlanması gerektiğine dair temel fikri vermelidir.


3

OSGeo4W'yi başarıyla kullanıyorum. Yapmanız gereken ayarlanmış:

PATH=C:\OSGeo4W\apps\qgis\bin;%PATH%

Ve kodda referans:

QgsApplication.setPrefixPath("C:\OSGeo4W\apps\qgis", True)

Benim için hiç işe yaramıyor.
SIslam
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.