অন্যান্য পাইথন স্ক্রিপ্টগুলিতে একটি পাইথন স্ক্রিপ্ট থেকে ভেরিয়েবল ব্যবহার করছেন?


9

আমি ভেরিয়েবলগুলি সহ একটি একক পাইথন ফাইল সেট আপ করতে চাই যাতে আমার সমস্ত ডেটা উত্সের অবস্থান থাকে। এটি তখন আমার অন্যান্য সমস্ত স্ক্রিপ্ট দ্বারা ব্যবহৃত হবে, তারপরে ডেটা উত্স পরিবর্তনের সাথে সাথে আমাকে কেবল একটি ফাইল সম্পাদনা করতে হবে।

আমার ডেটা_সোর্স.পিটি দেখতে এরকম কিছু দেখবে:

BC_BEC = "Database Connections\\BC.sde\\FOREST_BC.BC_Eco\\BC.BC_BEC"
BC_TFL = "Database Connections\\Forest_BC.sde\\BC.BC_Admin\\BC.TFL_Boundary"

এবং তাই ...

আমি কীভাবে আমার অন্যান্য সমস্ত স্ক্রিপ্টগুলি ডেটা_সোর্স.পিটিতে এই ভেরিয়েবলগুলি লোড বা অ্যাক্সেস পেতে পারি?


এই জাতীয় প্রশ্নগুলি, যা জিআইএসের জন্য পাইথন মডিউল বা সাইট-প্যাকেজের পরিবর্তে খাঁটি পাইথন, সাধারণত স্ট্যাক ওভারফ্লোতে গবেষণা করা / জিজ্ঞাসা করা উচিত ।
পলিজিও

উত্তর:


10

আপনি একটি ইনস্টলড পাইথন মডিউল তৈরি করতে পারেন যা প্যাকেজ করার জন্য ডিস্ট্রিটিলস ব্যবহার করে আপনি চালিত প্রতিটি পাইথন স্ক্রিপ্ট থেকে আমদানিযোগ্য ।

পাইথন ডক থেকে:

আপনি যা করতে চান তা যদি একটি foo.py ফাইলে থাকা foo নামে একটি মডিউল বিতরণ করা হয়, তবে আপনার সেটআপ স্ক্রিপ্টটি এর চেয়ে সহজ হতে পারে:

from distutils.core import setup
setup(name='foo',
      version='1.0',
      py_modules=['foo'],
      )

তারপরে আপনি এটির মাধ্যমে ইনস্টল করতে পারেন

python.exe setup.py install

এবং তারপরে আপনি যে কোনও পাইথন স্ক্রিপ্ট থেকে ফু আমদানি করতে পারেন, বা আপনি ব্যবহার করতে পারেন

python.exe setup.py bdist_wininst

মডিউলটির জন্য একটি উইন্ডো ইনস্টলার তৈরি করতে যাতে আপনি এটি অন্যান্য কম্পিউটারে বিতরণ করতে পারেন।


অ্যাঙ্গ আমদানি করার মডিউলগুলি ব্যবহার করে বিল্ডিংয়ের উদাহরণগুলি দেখিয়ে পাইথনের বাইট অফ বইয়ের একটি দুর্দান্ত অধ্যায় রয়েছে।
jonatr

আমি একটি মডিউল তৈরির এই পরামর্শটি পছন্দ করি তবে আমি সেগুলি সম্পর্কে খুব বেশি জ্ঞাত নই। "পাইথন.এক্সি সেটআপ.পিপি ইনস্টল" কমান্ডটি foo.py এর জন্য একটি পয়েন্টার ব্যবহার করবে, বা এটি foo.py এ বর্তমানে ব্যবহার করবে? আমি যদি পরে foo.py পরিবর্তন করি তবে মডিউলটি এখনও বর্তমান হবে? ধন্যবাদ।
ব্যবহারকারীর ত্রুটি

আমিও বইটি সন্ধান করব। জেসন এবং জোনাটরের সহায়তার জন্য ধন্যবাদ।
ব্যবহারকারীর ত্রুটি

শব্দভাণ্ডার সংশোধন: আরও সুনির্দিষ্ট অজগর শব্দটি হ'ল "প্যাকেজ" - ডকুমেন্টেশন সন্ধানের জন্য এবং স্পষ্ট করে বলতে যে প্যাকেজ এবং মডিউলগুলি পাইথন জগতের দুটি ভিন্ন জিনিস are এছাড়াও, একটি পরামর্শ / ইঙ্গিত: আপনি যদি setup.py develop(পরিবর্তে install) করেন তবে পুনরায় ইনস্টল করার প্রয়োজন ছাড়াই প্যাকেজটিতে সম্পাদনাগুলি সংরক্ষণের সাথে সাথেই তা নেওয়া হবে। (এটি সম্ভবত মূল প্রশ্নকারীর ডেটা_সোর্স.পিটির জন্য উপযুক্ত))
ড্যান এস

3
ব্যবহারকারী কীভাবে আমদানি করবেন তা জিজ্ঞাসা করছেন না? নীচে যে উত্তর।
সজিলিগুলি

12

ডেটা_সোর্স.পি হিসাবে একই ডিরেক্টরিতে যে কোনও স্ক্রিপ্টে, রাখুন

from Data_sources import BC_BEC, BC_TFL

উপরে. এটি কাজ করে কারণ আপনি যদি এটি পরিবর্তন না করেন তবে কার্যকারী ডিরেক্টরিটি অজগর পথের সর্বদা শীর্ষে থাকে।

>>> import sys
>>> sys.path[0] == ''
True

আরও দেখুন: http://diveintopython.org/getting_to_ জ্ঞান_পিথন / প্রতিটি কিছুর_আইস_আন_বজেক্ট এইচটিএমএল#d0e4550

আপনি যদি ডেটা আরও বিস্তৃত করতে চান তবে অন্যরা যেমন পরামর্শ দিয়েছেন আপনি এটি প্যাকেজ করতে পারেন।


8

একটি পাঠ্য কনফিগারেশন ফাইল তৈরি করুন এবং পাইথনের কনফিগার পার্সার সহ এটি পড়ুন ।

Http://effbot.org/librarybook/configparser.htm এ অফিসিয়াল ডকুমেন্টেশনের চেয়ে কিছুটা সুন্দর উদাহরণ


@ ইউজারার - একটি প্যাকেজ কোড বিতরণের জন্য ভাল তবে এটি আপনার পরামিতিগুলিকে এক জায়গায় রাখার সমস্যাটি সত্যিই সমাধান করে না।
geographika
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.