जवाबों:
site-packagesमैन्युअल रूप से निर्मित पायथन पैकेज की लक्ष्य निर्देशिका है। जब आप स्रोत से पायथन पैकेज बनाते हैं और स्थापित करते हैं ( डिस्टिल्स का उपयोग करके , संभवतः निष्पादित करके python setup.py install), तो आप site-packagesडिफ़ॉल्ट रूप से इंस्टॉल किए गए मॉड्यूल पाएंगे ।
मानक स्थान हैं:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 शुद्ध का मतलब है कि मॉड्यूल केवल पायथन कोड का उपयोग करता है। गैर-शुद्ध में C / C ++ कोड भी हो सकता है।
site-packagesपायथन खोज पथ के डिफ़ॉल्ट भाग से है , इसलिए वहां स्थापित मॉड्यूल को बाद में आसानी से आयात किया जा सकता है।
lib64!
/usr/lib/python3.6?
जब आप --userपाइप के साथ विकल्प का उपयोग करते हैं , तो पैकेज वैश्विक फ़ोल्डर के बजाय उपयोगकर्ता के फ़ोल्डर में स्थापित हो जाता है और आपको व्यवस्थापक विशेषाधिकारों के साथ पाइप कमांड चलाने की आवश्यकता नहीं होगी।
उपयोगकर्ता के संकुल फ़ोल्डर का स्थान उपयोग करके पाया जा सकता है:
python -m site --user-site
यह कुछ इस तरह मुद्रित करेगा:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
जब आप --userपाइप के साथ विकल्प का उपयोग नहीं करते हैं , तो पैकेज दिए गए वैश्विक फ़ोल्डर में स्थापित हो जाता है:
python -c "import site; print(site.getsitepackages())"
यह कुछ इस तरह मुद्रित करेगा:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
नोट: ऊपर मुद्रित मूल्य विंडोज 10 पर एनाकोंडा के साथ हैं। 4. डिफॉल्ट्स के साथ स्थापित।
साइट-पैकेज सिर्फ वह स्थान है जहां पायथन अपने मॉड्यूल स्थापित करता है।
"इसे ढूंढने" की आवश्यकता नहीं है, अजगर को पता है कि इसे स्वयं कहां से खोजना है, यह स्थान हमेशा PYTHONPATH (sys.path) का हिस्सा है।
प्रोग्रामेटिक रूप से आप इसे इस प्रकार पा सकते हैं:
import sys
site_packages = next(p for p in sys.path if 'site-packages' in p)
print site_packages
'/Users/foo/.envs/env1/lib/python2.7/site-packages'
site-packages, और यह उठाएंगे StopIteration। उदाहरण के लिए, डेबियन (और उबंटू) को dist-packagesअपने वितरित मॉड्यूल को स्थापित करना होगा।
/usr/local/lib/python3.6/site-packagesubuntu पर