স্বতন্ত্র পাইকিজিআইজিএস প্রসেসিং স্ক্রিপ্টগুলি চালানোর সময় আমি একটি অদ্ভুত সমস্যা নিয়ে এসেছি। স্ক্রিপ্টে আমদানির ক্রম এর সাধারণ সম্পাদনকে প্রভাবিত করে।
আপনি পাইথন কনসোলটি খোলার মাধ্যমে এবং নিম্নলিখিত স্ক্রিপ্টটি প্রবেশ করে সমস্যার পুনরুত্পাদন করতে পারেন (আমি জিএনইউ / লিনাক্স, কিউজিআইএস ২.6.১, প্রসেসিং প্লাগইন v.2.2.0-2 এবং পাইথন ২.7.৩ ব্যবহার করে):
# Prepare the environment
import sys
from qgis.core import QgsApplication
from PyQt4.QtGui import QApplication
app = QApplication([])
QgsApplication.setPrefixPath("/usr", True)
QgsApplication.initQgis()
# Prepare processing framework
sys.path.append('/home/YOUR_USER/.qgis2/python/plugins')
from processing.core.Processing import Processing
Processing.initialize()
print Processing.getAlgorithm("qgis:creategrid")
# Exit applications
QgsApplication.exitQgis()
QApplication.exit()
আপনার প্রাপ্ত করা উচিত:
ALGORITHM: Create grid
HSPACING <ParameterNumber>
VSPACING <ParameterNumber>
WIDTH <ParameterNumber>
HEIGHT <ParameterNumber>
CENTERX <ParameterNumber>
CENTERY <ParameterNumber>
GRIDTYPE <ParameterSelection>
CRS <ParameterCrs>
SAVENAME <OutputVector>
অন্যদিকে, আপনি যদি আমদানির ক্রমটি পরিবর্তন করেন (লাইন 3 এবং 4), এইভাবে:
from PyQt4.QtGui import QApplication
from qgis.core import QgsApplication
স্ক্রিপ্টটি এখন ফিরে আসে ... None
, কারণ অ্যালগরিদম খুঁজে পাওয়া যায় নি।
এই সমস্যাটি সূচিত করে যে আপনি QGIS এর বাইরে প্রক্রিয়াকরণ অ্যালগরিদমগুলি চালাতে পারবেন না যদি আপনি (যথাযথভাবে) ভুল ক্রমে আমদানি লিখেন।
আমি স্ট্যাকওভারফ্লোতে চেক করেছি তবে পাইথন আমদানি করার বিষয়টি কি আদেশ অনুসারে , অর্ডারটি সত্যিকার অর্থে গুরুত্বপূর্ণ নয়। তদতিরিক্ত, পাইথন কোডের জন্য স্টাইল গাইড আমাদের প্রথমে স্ট্যান্ডার্ড (আরও জেনেরিক) লাইব্রেরি আমদানি করতে বলে, তারপরে তৃতীয় পক্ষের সম্পর্কিত লাইব্রেরি এবং শেষ পর্যন্ত স্থানীয় অ্যাপ্লিকেশন নির্দিষ্ট আমদানি করতে বলে। আমি মনে করি পাইকিউটি 4 আমদানির ২ য় বিভাগের মধ্যে রয়েছে, যেখানে পাইকিজিআইএস স্থানীয় অ্যাপ্লিকেশন নির্দিষ্ট হবে, তাই পাইকিউটি 4 আমদানিটি প্রথম আসবে (যদিও আমি এ বিষয়ে বিশেষজ্ঞ নই)।
কেন এমন হতে পারে সে সম্পর্কে আপনার ধারণা আছে? আপনি কি কখনও অনুরূপ কিছু অভিজ্ঞতা আছে?
সম্পাদনা 1: @ মাইক-টি দ্বারা প্রস্তাবিত from abc import *
সুস্পষ্টভাবে (যেমন, from abc import xyz
) দ্বারা অন্তর্নিহিত আমদানি ( ) পরিবর্তিত হয়েছে ।