Bugün küçük bir prototip yazmak için QGIS Python Bağlamaları olan PYQGI’leri kullanarak bağımsız bir komut dosyasını bir araya getirmek istedim. Henüz böyle bağımsız bir senaryo yazmamıştım, ama düşük asılı meyve gibi görünüyordu. Görünen o ki, Ubuntu’da gerçekten basit değil. Burada sana nasıl çalıştığını göstereceğim.
Okuma PYQGIS Geliştirici Yemek Kitabı’ndaki ilgili dokümanlarKomut dosyası içindeki QGIS uygulama bağlamını ayarlamak için hızlı bir kopya/yapıştırma işi olacağını varsaydım. Ama şeytan ayrıntılı. Dokümanlar, QGIS’in kaynaklarının kurulduğu yeri kontrol ederek, Master veya benzer bir şey derleyerek QGI’leri kurduğunuzu varsayıyor gibi görünüyor. Ancak qGIS.org Paket Repo’dan önceden oluşturulmuş paketleri kullanıyorum.
Dokümanlara göre burada bir PYQGIS betiğinin en temel biçimini görüyorsunuz. Yalnızca QGIS uygulama örneğini başlatır, başka bir şey yoktur. Ancak çalıştırmadan önce, Python’un ithal QGIS modüllerini bulduğundan emin olmalıyız.
from qgis.core import QgsApplication # Supply path to qgis install location QgsApplication.setPrefixPath("/usr/bin/qgis", True) # Create a reference to the QgsApplication. Setting the # second argument to False disables the GUI. qgs = QgsApplication([], False) # Load providers qgs.initQgis() # Put your pyqgis code here: print("Success!") # Finally, exitQgis() is called to remove the # provider and layer registries from memory qgs.exitQgis()
Dokümanlar bize Python’a QGIS Python modüllerini nerede bulacağını söylemek için Linux’ta böyle bir şey kullanmamızı söylüyor:
export PYTHONPATH=//share/qgis/python
Ama bu nerede ?
Çevrimiçi olarak herhangi bir doküman veya başka yardım bulamadım, bu yüzden kullandım dpkg-query -L
ile yüklenmiş dosyaları bulmak için qgis
paket. Görünen o ki, qGIS.org Repo’dan Ubuntu’daki QGI’ler çok sayıda farklı paketten oluşuyor ve ayrıca daha fazla Python bağımlılığı yüklemek için Systems kendi paket yöneticisini düzgün bir şekilde kullanıyor. PYQGIS şeyler de şemaya sığacak şekilde paketlenir ve bu nedenle bağımsız bir python3-qgis
Python modüllerini düşüren paket /usr/lib/python3/dist-packages/
.
Şimdi, Pythonpath’i kullanarak ayarladığımda
export PYTHONPATH=/usr/lib/python3/dist-packages/
ve komut dosyasını yukarıdan çalıştırın
python my_script.py
Daha fazla alamıyorum ModuleNotFoundError: No module named 'qgis'
.
Neyse ki, Dokümanlar’da öngörülen bağlantılı kütüphanelerden herhangi bir hata almıyorum.