ডি-প্যাকেজ এবং সাইট-প্যাকেজগুলির মধ্যে পার্থক্য কী?


243

পাইথন প্যাকেজ ইনস্টলেশন প্রক্রিয়াটি আমি কিছুটা বিভ্রান্ত করছি। বিশেষত, ডিস্ট-প্যাকেজ ডিরেক্টরি এবং সাইট-প্যাকেজ ডিরেক্টরিতে ইনস্টল হওয়া প্যাকেজগুলির মধ্যে পার্থক্য কী?

উত্তর:


226

ডিস-প্যাকেজগুলি হ'ল ডেবিয়ান-নির্দিষ্ট কনভেনশন যা উবুন্টুর মতো তার ডেরাইভেটিভগুলিতেও উপস্থিত। মডিউলগুলি ডিবি-প্যাকেজ ম্যানেজার থেকে এই স্থানে আসার পরে ডি-প্যাকেজগুলিতে ইনস্টল করা হয়:

/usr/lib/python2.7/dist-packages

যেহেতু easy_installএবং pipপ্যাকেজ ম্যানেজার থেকে ইনস্টল করা হয়, তারা ডিস্ট-প্যাকেজগুলি ব্যবহার করে তবে তারা এখানে প্যাকেজ রাখে:

/usr/local/lib/python2.7/dist-packages

থেকে ডেবিয়ান পাইথন উইকি :

সাইট-প্যাকেজগুলির পরিবর্তে ডিস্ট-প্যাকেজ। ডেবিয়ান প্যাকেজগুলি থেকে ইনস্টল করা তৃতীয় পক্ষের পাইথন সফ্টওয়্যারটি সাইট-প্যাকেজগুলিতে নয়, ডিস্ট-প্যাকেজগুলিতে চলে যায়। এটি পাইথন সিস্টেমের মধ্যে দ্বন্দ্ব হ্রাস করতে এবং কোনও উত্স-উত্স পাইথন বিল্ড আপনি ম্যানুয়ালি ইনস্টল করতে পারেন।

এর অর্থ হ'ল আপনি যদি উত্স থেকে ম্যানুয়ালি পাইথন ইনস্টল করেন তবে এটি সাইট-প্যাকেজ ডিরেক্টরি ব্যবহার করে। এটি আপনাকে দুটি ইনস্টলেশন পৃথক রাখতে দেয়, বিশেষত যেহেতু দেবিয়ান এবং উবুন্টু অনেকগুলি সিস্টেম ইউটিলিটির জন্য পাইথনের সিস্টেম সংস্করণে নির্ভর করে।


22
এটা কি সঠিক ?! আমি পাইপ দিয়ে ইনস্টল করি এবং এটি ডি-প্যাকেজগুলিতে যায়। (দেব স্কুইজ + পাই ২.6 এ)
বাসেল শিশানী

4
এটা আমার জন্যও একই। পাইপ বা ইজি_ ইনস্টল সহ ইনস্টল করা প্যাকেজগুলি সমস্ত ডি-প্যাকেজগুলিতে চলে যায়।
মনোস্টপ

1
এখানে একই, আমি যদি এই সমস্ত স্থাপনাগুলি সরিয়ে ফেলি তবে আমার কোনও সমস্যা হবে?
মোহাম্মদ তুরকি

1
ডেবিয়ান 6.0.10 এর জন্য একই ডিরেক্টরি (এখনও পাইথন ২.6 এ রয়েছে)।
ᴠɪɴᴄᴇɴᴛ

2
আপনি যদি পিপ দিয়ে ভার্চুয়ালেনভ ব্যবহার করেন, পিপ সাইট-প্যাকেজ ডিরেক্টরিতে প্যাকেজ ইনস্টল করবে ।
ডায়াবলনেও

4

dist-packagesডেবিয়ান-নির্দিষ্ট ডিরেক্টরি যেখানে aptএবং বন্ধুরা তাদের স্টাফ ইনস্টল করে এবং site-packagesএটি স্ট্যান্ডার্ড pipডিরেক্টরি।

সমস্যাটি হ'ল: একই প্যাকেজের বিভিন্ন সংস্করণ বিভিন্ন ডিরেক্টরিতে উপস্থিত হলে কী হয়?

সমস্যার আমার সমাধানটি এখানে dist-packagesএকটি সিমিলিংক করা site-packages:

for d in $(find $WORKON_HOME -type d -name dist-packages); do
  pushd $d
  cd ..
  if test -d dist-packages/__pycache__; then
    mv -v dist-packages/__pycache__/* site-packages/__pycache__/
    rmdir -v dist-packages/__pycache__
  fi
  mv -v dist-packages/* site-packages/
  rmdir -v dist-packages
  ln -sv site-packages dist-packages
  popd
done

(যদি আপনি gnu সরঞ্জাম ব্যবহার না করেন তবে -vবিকল্পটি সরিয়ে দিন )।


1
আমি আপনার সমস্যার সমাধান নিয়ে কোন সমস্যার সমাধান করছি তা নিয়ে আমি কিছুটা বিভ্রান্ত হচ্ছি কারণ প্রশ্নটির ব্যাখ্যা প্রয়োজন
কে।

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