डिस्ट-पैकेज और साइट-पैकेज के बीच अंतर क्या है?


243

मैं अजगर पैकेज स्थापना प्रक्रिया से थोड़ा सा प्रभावित हूँ। विशेष रूप से, डिस्ट-पैकेज डायरेक्टरी और साइट-पैकेज डायरेक्टरी में स्थापित पैकेजों में क्या अंतर है?

जवाबों:


226

dist-package एक डेबियन-विशिष्ट सम्मेलन है जो उबंटू की तरह अपने डेरिवेटिव में भी मौजूद है। जब वे डेबियन पैकेज मैनेजर से इस स्थान पर आते हैं, तो डिस्ट्यू-पैकेज में मॉड्यूल स्थापित किए जाते हैं:

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

चूंकि easy_installऔर pipपैकेज मैनेजर से स्थापित हैं, इसलिए वे डिस्ट-पैकेज का उपयोग करते हैं, लेकिन वे यहां पैकेज रखते हैं:

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

से डेबियन अजगर विकी :

साइट-संकुल के बजाय dist-package। डेबियन पैकेज से स्थापित थर्ड पार्टी पायथन सॉफ्टवेयर डिस्ट-पैकेज में जाता है, न कि साइट-पैकेज में। यह सिस्टम पायथन के बीच संघर्ष को कम करने के लिए है, और किसी भी स्रोत से पायथन का निर्माण आप मैन्युअल रूप से स्थापित कर सकते हैं।

इसका अर्थ है कि यदि आप मैन्युअल रूप से पायथन को स्रोत से स्थापित करते हैं, तो यह साइट-संकुल निर्देशिका का उपयोग करता है। यह आपको दो इंस्टॉलेशन को अलग रखने की अनुमति देता है, खासकर जब से डेबियन और उबंटू कई सिस्टम उपयोगिताओं के लिए पायथन के सिस्टम संस्करण पर भरोसा करते हैं।


22
क्या यह सही है ?! मैं पाइप के साथ स्थापित करता हूं और यह डिस्ट-पैकेज में जाता है। (देब
स्क्वीज़

4
मेरे लिए भी ऐसा ही है। पाइप या easy_install के साथ स्थापित संकुल सभी डिस्ट-पैकेज में जाता है।
मोनोस्टॉप

1
यहाँ भी, क्या मुझे कोई समस्या होगी अगर मैं उन सभी स्थापनाओं को हटा दूं?
मोहम्मद तुर्क

1
डेबियन 6.0.10 (अभी भी पायथन 2.6 पर) के लिए समान निर्देशिकाएं।
ᴠɪɴᴄᴇɴᴛ

2
यदि आप पाइप के साथ virtualenv का उपयोग करते हैं, तो पाइप साइट-पैकेज निर्देशिका में पैकेज स्थापित करेगा ।
डायब्लोनो

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

(यदि आप ग्नू उपकरण का उपयोग नहीं कर रहे हैं, तो -vविकल्प को हटा दें )।


1
मैं थोड़ा उलझन में हूँ कि आप किस समस्या को अपने समाधान के साथ हल करते हैं क्योंकि प्रश्न एक स्पष्टीकरण की आवश्यकता है
Jürgen K.

@ JürgenK: मेरे लिए समस्या यह थी कि किस पैकेज का उपयोग तब किया जाता है जब विभिन्न निर्देशिकाओं में अलग-अलग संस्करण होते हैं।
एसडीएस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.