আমি যখন আপনার কোডটি চালাচ্ছি তখন আমি একটি খালি অভিধানও পাই তবে নিম্নলিখিতগুলি আমার জন্য কাজ করে যা কিছুটা আলাদা:
from qgis.core import *
from PyQt4.QtCore import QFileInfo
from PyQt4.QtGui import QApplication
import os
from os.path import expanduser
home = expanduser("~")
QgsApplication( [], False, home + "/AppData/Local/Temp" )
QgsApplication.setPrefixPath("C:/OSGeo4W64/apps/qgis", True)
app = QApplication([], True)
QgsApplication.initQgis()
# Get the project instance
project = QgsProject.instance()
# Open the project
project.read(QFileInfo('C:\path\to\project\project.qgs'))
print project.fileName()
# Get the layers in the project
layers = QgsMapLayerRegistry.instance().mapLayers()
print layers
QgsApplication.exitQgis()
app.exit()
উইন্ডোজ 7 64-বিটের জন্য কিউজিআইএস 2.18.3 এ পরীক্ষিত।
সম্পাদনা:
আমি বিশ্বাস করি যে আপনার কোড এবং আমি যেটি ব্যবহার করেছি তার মধ্যে প্রধান পার্থক্য হ'ল কিউজেএসপ্লিকেশন তৈরির আগে আপনাকে কিউপ্লায়িকেশন অবজেক্ট তৈরি করতে হবে। সুতরাং আপনার প্রতিস্থাপন করতে হবে:
qgs = QgsApplication([], False)
এর সাথে:
qgs = QApplication([], False)
তবে কিউপ্লিকেশন ক্লাসটি আমদানি করা দরকার সুতরাং আমাদের অবশ্যই নিম্নলিখিতগুলি যুক্ত করতে হবে:
from PyQt4.QtGui import QApplication
এবং পরিশেষে, আপনি যদি একটি ক্লিনআপ করতে চান তবে আপনাকে শেষে নীচেরগুলি যুক্ত করতে হবে।
QgsApplication.exitQgis()
সুতরাং আপনি নীচের কোডটি ব্যবহার করতে চেষ্টা করতে পারেন যা আপনার মূল কোডের আরও বেশি কাছাকাছি রয়েছে:
from qgis.core import *
from PyQt4.QtCore import QFileInfo
from PyQt4.QtGui import QApplication
QgsApplication.setPrefixPath("C:/OSGeo4W64/apps/qgis", True)
qgs = QApplication([], False)
QgsApplication.initQgis()
# Get the project instance
project = QgsProject.instance()
# Open the project
project.read(QFileInfo('C:/path/to/project/project.qgs'))
print project.fileName()
# Get the layers in the project
layers = QgsMapLayerRegistry.instance().mapLayers()
print layers
QgsApplication.exitQgis()
QGIS 2.18.2
ওপি এবং @ জার্মেইনসিরিলোর চেষ্টা করা পদক্ষেপে আমার একই সমস্যা । ওপি'র সংস্করণ কী?