"পাইথন 3" এবং "পাইথন" কী পৃথক পাথের ভেরিয়েবল ব্যবহার করে?


9

কমান্ডটি pythonএকটি পাইথন ২.7..6 পরিবেশ খোলে। আমি যদি পাইথন 3 স্ক্রিপ্টটি ব্যাখ্যা করতে চাই তবে আমাকে কমান্ডটি পুনরায় লিখতে হবে python3

আমি সবেমাত্র নামপি প্যাকেজটি ইনস্টল করেছি । সফল ইনস্টলেশন পরীক্ষা করতে, আমি কমান্ডটি চালাচ্ছি import numpypythonকমান্ডটি ব্যবহার করার সময় এটি ভাল কাজ করে । তবে python3প্যাকেজটি খুঁজে পাচ্ছে না।

এটা কিভাবে সম্ভব? এই দুটি কমান্ড কি বিভিন্ন পাথ ভেরিয়েবল ব্যবহার করে ? আমি কীভাবে আচরণটি পরিবর্তন করতে পারি?


সম্পর্কিত / দরকারী হতে পারে: stackoverflow.com/a/53767029/52074
ট্রেভর বয়েড স্মিথ

উত্তর:


9

আপনি একেবারে ঠিক, তারা বিভিন্ন PYTHONPATHগুলি ব্যবহার করে ।

আপনি পাইথন 2.x এবং পাইথন 3.x কে সম্পূর্ণ আলাদা প্রোগ্রামিং পরিবেশ হিসাবে ভাবতে পারেন। এবং হ্যাঁ, তারা তাদের প্যাকেজগুলি বিভিন্ন স্থানে সঞ্চয় করে।

অদ্ভুত কাজ করার জন্য, আপনি টাইপ করতে পারেন:

sudo apt-get install python3-numpy

ঠিক কোন প্যাকেজটি কোথায় রাখা হয়েছে তা যদি আপনি জানতে চান তবে আপনি মডিউল অবজেক্টস __path__বৈশিষ্ট্যটি দেখতে পারেন:

>>> import numpy
>>> numpy.__path__
['/usr/local/lib/python3.5/site-packages/numpy']

পাইপ দিয়ে পাইথন 3 এর জন্য প্যাকেজ ইনস্টল করতে python3-pipএবং তারপরে উবুন্টুতে উপলভ্য নয় এমন pip3 install whateverপ্যাকেজগুলির জন্য আপনি চালনা করতে পারেন ।python3-whatever

যদি আপনি ডিস্টিল, সেটআপলস, ইজি_সনস্টল, পিপ এবং বাকীগুলির মধ্যে পার্থক্য সম্পর্কে বিভ্রান্ত হন তবে পিপ ব্যবহার করুন। এটাই দুর্দান্ত। :)


2
তারা পৃথক পাইথনপথ ব্যবহার করে না, বরং পাইথন 2 কেবলমাত্র packages PREFIX / lib / python2 * এবং পাইথন 3-তে কেবলমাত্র প্যাকেজ ব্যবহার করে $ PREFIX / lib / পাইথন 3 *।
dalloliogm

4

না, তারা একই ব্যবহার করে PATH। যাইহোক, এই সমস্যাটির সাথে নয় PATH

পাইথন 2 এবং পাইথন 3 যথেষ্ট পৃথক যে প্যাকেজগুলি উভয়ের জন্য পৃথকভাবে লিখতে হবে। আপনি অন্যের সাথে লেখা একটি প্যাকেজ ব্যবহার করতে পারবেন না।

উবুন্টু, এই মডিউল বিভিন্ন স্থানে সংরক্ষণ করা হয় এবং তাদের পৃথকভাবে প্যাকেজ হয় - python-numpy, পাইথন 2 জন্য python3-numpyআপনি পাইথন 3 numpy চান পাইথন 3. জন্য, ইনস্টল python3-numpy

$ python3 -c 'import sys; print (sys.path)'
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/home/muru/.local/lib/python3.4/site-packages', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
$ python2 -c 'import sys; print (sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']

3

প্রকৃতপক্ষে, উভয়ই বিভিন্ন অবস্থান থেকে মডিউল আমদানি করছেন:

  • Python2.7: /usr/lib/python2.7/dist-packages/numpy/
  • Python3.x: /usr/lib/python3/dist-packages/numpy/

numpyউভয় দোভাষী সাথে আমদানি করতে সক্ষম হতে , তাদের সংশ্লিষ্ট প্যাকেজগুলি ইনস্টল করতে ভুলবেন না:

  • Python2.7: sudo apt-get install python-numpy
  • Python3.x: sudo apt-get install python3-numpy
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.