python - রথম - সি++ প্রোগ্রামিং




Dist প্যাকেজ এবং সাইট প্যাকেজ মধ্যে পার্থক্য কি? (2)

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


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

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

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

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

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

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

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


সমস্যাটি আমার সমাধান হল dist-packages site-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 বিকল্পটি সরান)।





package-managers