Tek başına bir PyQGIS komut dosyası yazarken import qgis.core ile ilgili sorun


18

Qgis.core ve diğer çeşitli qgis kütüphanelerini kullanan Windows 7'de tek başına bir python komut dosyası yazmaya çalışıyorum.

Burada bu konuda eski bir soru buldum: PyQGIS kullanarak bağımsız Python komut dosyaları yazma? ve buradaki kılavuzu kullanarak tavsiyelerine uyuyordu : http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-applications

Orada önerilen kod:

set PYTHONPATH=c:\qgispath\python

bunu takiben:

set PATH=C:\qgispath;%PATH%

Ben IDLE "başlangıçta küme gibi değildi, buldum, bu yüzden benim kod şöyle görünüyor:

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

ve anladım:

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

Sonunda;% PATH% "nin kaldırılması da dahil olmak üzere düşünebileceğim her yolu denedim (biraz gereksiz görünüyor), ancak daha fazla bilgi bulamadım. yanlış mı gidiyorsun?

DÜZENLE:

Luigi Pirelli'nin yorumunu gördükten sonra şimdi denedim:

>>> 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
>>> 

Lütfen sorunuzun başlığını karşılaştığınız sorunun ana hatlarını belirleyeceği şekilde değiştirebilir misiniz?
SS_Rebelious

PYTHONPATH değerini QGIS Python Konsolunda "qgis" yazarak okuyabileceğiniz değer olarak ayarlayın ... değer nedir? Benim durumumda: <modül 'qgis' 'C: / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis_ init_ .pyc '> => PYTHONPATH yolunu eklemeliyim: "C: / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis "
Luigi Pirelli

Başlık değiştirildi, teşekkürler, bunu deneyeceğim ve sorunun ana gövdesinde rapor
edeceğim

1
Hala şans yok, PATH ve PYTHONPATH'ın birçok permütasyonunu boşuna denedim.
user24956

Yanıtlar:


12

QGIS'i OSGeo4W aracılığıyla yüklediyseniz, bu iş akışını izlemenizi öneririm (Windows 7'de yeni test ettim):

  1. OSGeo4W Kabuğunu açın . Start->All programs->OSGeo4W->OSGeo4W Shell.

  2. Ortam değişkenlerini ayarlayın . Tercih ettiğim yol bu yarasa dosyasını (güncellenmiş 2016.11.03: bu yarasa dosyası ) OSGeo4W Kabuğu'ndan yürütmek. Gördüğünüz gibi, dosya ortam değişkenlerini şu şekilde ayarlar:

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

    Tabii ki, işletim sisteminizde bu yolların var olduğunu kendiniz kontrol etmeniz ve gerekirse bunları ayarlamanız gerekir.

    Bu nedenle, .bat dosyasını indirin ve OSGeo4W Kabuğu'ndan erişip ENTER tuşuna basarak yürütün.

    resim açıklamasını buraya girin

  3. PyQGIS kitaplıklarını aşağıdaki yöntemlerden biriyle içe aktarın:

    a. Python yorumlayıcısına girin. pythonOSGeo4W Kabuğunda çalıştırın ve kitaplıkları manuel olarak içe aktarın.

    resim açıklamasını buraya girin

    b. Bir Python betiği çalıştırın. python my_pyqgis_script.pyOSGeo4W Kabuğunda çalıştırın . Çok basit biriyle başlardım .

    resim açıklamasını buraya girin

İş akışı birkaç yıl önce GeoTux'ta yayınlandı ve hala çalışıyor. Gördüğünüz gibi, Python betiğine ortam değişkenlerini dahil etmiyorum, ancak OSGeo4W Kabuğunda ayarladım.


Selam! Bu konuda bir şüphem var. Neden var_entorno_osgeo4w.bat? Bütün bu çizgileri yaptım ama bu parçada bana bir hata veriyor. Ayrıca bu yardım foruns okumak ve hala ithalat qgis.core hata (osgeo4w kabuk çalıştırmak) olsun.
Bárbara Duarte

Çünkü ortam değişkenlerini ayarlamak için size sağladığım dosyanın adı bu. Böylece, .bat dosyasının bulunduğu klasöre gidersiniz (içinde bulunduğunu gördüğünüz resimlerde C:\dllo) ve dosyanın adını yazıp Enter tuşuna basarak .bat dosyasını çalıştırırsınız.
Germán Carrillo

Yukarıdaki çözümü kullanmaya çalıştım - my_pygis_script.py dosyasını çalıştırmaya ve bir içe aktarma hatası almaya çalıştım: qgis.core adlı modül yok. Bunu nasıl düzeltebilirim?
kflaw

Ayrıca pyscripter'da qgis.core dosyasını içe aktarmaya çalıştım ve başka bir içe aktarma hatası alıyorum: sip
kflaw

1
Burada önerilen yöntemi denerseniz 'qgis.core adında bir modül' almıyorum. Qytis / bin içindeki python.exe'yi yorumlayıcı olarak kullanırsam qgis.core dosyasını içe aktarmaya çalıştığımda 'site adında modül yok' hatası alıyorum. Pyqgis kullanmaya çalışırken uzun saatler harcadım.
Alexander

6

Ben sadece benzer bir sorun ile güreş oldum ve python-qgis.bat adlı OSGeo4W \ bin klasöründe bir toplu iş dosyası fark ettim . Bu, Windows 10 üzerinde QGIS 2.18.15 x64 OSGeo4W paket tabanlı kurulumunun bir parçasıdır.

Yürütüldüğünde, bu toplu iş dosyası Python yorumlayıcısını açar. import qgisbaşarıyla içinden çalışır.

Bu toplu iş dosyası satırı içerir (Germán Carrillo tarafından orijinal yanıtında belirtildiği gibi):

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

Python yorumlayıcısı başlatılmadan hemen önce.


bu, ortam değişkenlerini manuel olarak yapılandırmanın acısını ortadan
kaldırıyor

Bu çalışmaya başlıyor gibi görünüyor ama C: \ OSGEO4 ~ 1 \ apps \ Python37 \ lib \ site.py çalıştırırken "SyntaxError: geçersiz sözdizimi" hatası veriyor
Donny V.

Bu hatayı almamın nedeni, QGIS'in kullandığı python'u çalıştırmamamdı. Şimdi çalışıyor!
Donny V.
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.