চেষ্টা
if __name__ == '__main__':
from [whatever the name of your package is] import one
else:
import one
দ্রষ্টব্য যে পাইথন 3 এ, ধারাটিতে অংশটির বাক্য গঠন else
হবে
from .. import one
দ্বিতীয় চিন্তায়, সম্ভবত এটি আপনার নির্দিষ্ট সমস্যাটি সমাধান করবে না। আমি প্রশ্নটি ভুল বুঝেছিলাম এবং ভেবেছিলাম যে two.py মূল মডিউল হিসাবে চালিত হচ্ছে, তবে এটি তেমন নয়। এবং পাইথন ২.6 এর মধ্যে পার্থক্য বিবেচনা করে (আমদানি না করে absolute_import
)__future__
) এবং পাইথন ৩.x হ্যান্ডেল আমদানিগুলির , যাইহোক, পাইথন ২.6 এর জন্য আপনার এটি করার দরকার হবে না, আমি ভাবি না।
তবুও, যদি আপনি অবশেষে পাইথন 3 এ পরিবর্তন করেন এবং প্যাকেজ মডিউল এবং প্যাকেজের অভ্যন্তরে পৃথক স্ক্রিপ্ট হিসাবে মডিউল ব্যবহার করার পরিকল্পনা করেন তবে এর মতো কিছু রাখা ভাল ধারণা হতে পারে
if __name__ == '__main__':
from [whatever the name of your package is] import one # assuming the package is in the current working directory or a subdirectory of PYTHONPATH
else:
from .. import one
মনে
সম্পাদনা: এবং এখন আপনার প্রকৃত সমস্যার সম্ভাব্য সমাধানের জন্য। হয় আপনার মডিউলযুক্ত ডিরেক্টরি থেকে পাইলিন্ট চালান one
(সম্ভবত কমান্ড লাইনের মাধ্যমে), অথবা পাইলিন্ট চালানোর সময় নিম্নলিখিত কোডটি কোথাও রেখে দিন:
import os
olddir = os.getcwd()
os.chdir([path_of_directory_containing_module_one])
import one
os.chdir(olddir)
মূলত, পাইথনপথের সাথে ঝাঁকুনির বিকল্প হিসাবে, কেবলমাত্র one.py
আমদানি করার সময় বর্তমান কার্যক্ষম ডিরেক্টরিটি ডিরেক্টরি রয়েছে তা নিশ্চিত করুন ।
(ব্রায়ানের উত্তরটির দিকে তাকিয়ে আপনি সম্ভবত পূর্ববর্তী কোডটি অর্পণ করতে পারেন init_hook
, তবে আপনি যদি এটি করতে চলেছেন তবে আপনি কেবল sys.path
তাঁর কাজটি সংযোজন করতে পারেন যা আমার সমাধানের চেয়ে সামান্য মার্জিত is)