आभासी वातावरण के बिना
pip <command> --user सिस्टम-वाइड पैकेज स्थापित स्थान के बजाय, जो डिफ़ॉल्ट है, वर्तमान उपयोगकर्ता खाते के स्थानीय अजगर पैकेज स्थापित स्थान पर काम करने के लिए वर्तमान पाइप कमांड के दायरे को बदलता है।
यह केवल एक बहु-उपयोगकर्ता मशीन पर मायने रखता है। सिस्टम स्थान पर स्थापित कुछ भी सभी उपयोगकर्ताओं को दिखाई देगा, इसलिए उपयोगकर्ता स्थान पर स्थापित करने से पैकेज की स्थापना अन्य उपयोगकर्ताओं से अलग रहेगी (वे इसे नहीं देखेंगे, और इसका उपयोग करने के लिए इसे अलग से स्थापित करना होगा)। क्योंकि संस्करण संघर्ष हो सकते हैं, अन्य पैकेजों के लिए आवश्यक निर्भरता वाले पैकेज को स्थापित करने से समस्याएं हो सकती हैं, इसलिए सिस्टम पैकेज स्थान पर उपयोगकर्ता द्वारा दिए गए सभी पैकेजों को धक्का देना सबसे अच्छा नहीं है।
- यदि यह एकल-उपयोगकर्ता मशीन है, तो
--userस्थान पर स्थापित करने के लिए बहुत कम या कोई अंतर नहीं है । यह एक अलग फ़ोल्डर में स्थापित किया जाएगा, जो पैकेज के आधार पर और पथ में जोड़े जाने की आवश्यकता हो सकती है या नहीं और इसका उपयोग कैसे किया जाए (कई पैकेज कमांड-लाइन टूल स्थापित करते हैं जो शेल से चलने के लिए पथ पर होना चाहिए) ।
- यदि यह एक बहु-उपयोगकर्ता मशीन है,
--userतो रूट / sudo का उपयोग करना या व्यवस्थापक स्थापना की आवश्यकता और प्रत्येक उपयोगकर्ता के पायथन वातावरण को प्रभावित करना पसंद किया जाता है, सामान्य पैकेजों के मामलों को छोड़कर, जिसे व्यवस्थापक डिफ़ॉल्ट रूप से सभी उपयोगकर्ताओं को उपलब्ध कराना चाहता है।
- नोट: प्रति टिप्पणियां, अधिकांश यूनिक्स / लिनक्स इंस्टॉल पर यह बताया गया है कि सिस्टम इंस्टॉल को सामान्य पैकेज प्रबंधक, जैसे
apt, के बजाय का उपयोग करना चाहिए pip।
आभासी वातावरण के साथ
--userएक सक्रिय venv / virtualenv वातावरण में विकल्प स्थानीय उपयोगकर्ता अजगर स्थान (एक आभासी वातावरण के बिना के रूप में ही) के लिए स्थापित हो जाएगा।
संकुल को डिफ़ॉल्ट रूप से आभासी वातावरण में स्थापित किया जाता है, लेकिन यदि आप इसका उपयोग करते हैं तो --userयह आभासी वातावरण के बाहर स्थापित करने के लिए मजबूर करेगा, उपयोगकर्ताओं में अजगर स्क्रिप्ट निर्देशिका (विंडोज में, यह वर्तमान में c:\users\<username>\appdata\roaming\python\python37\scriptsपायथन 3.7 के साथ मेरे लिए है)।
हालाँकि, आप वर्चुअल वातावरण में (भले ही आपने --userवर्चुअल वातावरण में उपयोग किया हो) किसी सिस्टम या उपयोगकर्ता को एक्सेस करने में सक्षम नहीं होंगे ।
यदि आप --system-site-packagesतर्क के साथ एक आभासी वातावरण स्थापित करते हैं, तो आपके पास अजगर के लिए सिस्टम स्क्रिप्ट फ़ोल्डर तक पहुंच होगी। मेरा मानना है कि इसमें उपयोगकर्ता अजगर स्क्रिप्ट फ़ोल्डर भी शामिल है, लेकिन मैं अनिश्चित हूं। हालाँकि, इसके लिए अनपेक्षित परिणाम हो सकते हैं और यह आभासी वातावरण का उपयोग करने का अभीष्ट तरीका नहीं है।
पायथन सिस्टम का स्थान और स्थानीय उपयोगकर्ता स्थापित फ़ोल्डर
आप के साथ अजगर के लिए उपयोगकर्ता स्थापित फ़ोल्डर का स्थान पा सकते हैं python -m site --user-base। मुझे Q & A की परस्पर विरोधी जानकारी मिल रही है, दस्तावेज़ और वास्तव में मेरे पीसी पर इस कमांड का उपयोग करते हुए कि क्या चूक हैं, लेकिन वे उपयोगकर्ता के होम डायरेक्टरी ( ~शॉर्टकट * निक्स और c:\users\<username>आमतौर पर विंडोज के लिए) के नीचे हैं।
अन्य जानकारी
--userविकल्प हर आदेश के लिए एक मान्य नहीं है। उदाहरण के लिए, pip uninstallजहाँ भी उन्हें स्थापित किया गया था (उपयोगकर्ता फ़ोल्डर, आभासी पर्यावरण फ़ोल्डर, आदि में) पैकेज खोजे और अनइंस्टॉल करें और --userविकल्प मान्य नहीं है।
स्थापित की गई चीजें pip install --userस्थानीय स्थान पर स्थापित की जाएंगी जो केवल वर्तमान उपयोगकर्ता खाते द्वारा देखी जाएंगी, और उन्हें रूट एक्सेस (* निक्स) या व्यवस्थापक एक्सेस (विंडोज पर) की आवश्यकता नहीं होगी।
--userविकल्प संशोधित सभी pip आदेशों को यह देखने के लिए स्वीकार / उपयोगकर्ता पर काम फ़ोल्डर स्थापित करते हैं, इसलिए यदि आप का उपयोग pip list --userयह होगा केवल दिखाने के लिए आप के साथ इंस्टॉल किए गए पैकेज pip install --user।
import site; print site.USER_SITEस्थापित स्थान को प्रिंट कर सकते हैं । मेरे लिए मैं मिल गया/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages।