2015-10-29 17 views
60

--उपयोगकर्ता स्थापित वहाँ पिप के लिए एक --user विकल्प है जिसके प्रति उपयोगकर्ता अजगर पैकेज स्थापित कर सकते हैं:एक पैकेज पिप के साथ स्थापित की स्थापना रद्द करने के लिए कैसे

pip install --user [python-package-name] 

मैं के लिए एक सर्वर पर एक पैकेज स्थापित करने के लिए इस विकल्प का इस्तेमाल किया जो मेरे पास रूट पहुंच नहीं है। अब मुझे वर्तमान उपयोगकर्ता पर स्थापित पैकेज को अनइंस्टॉल करना है। मैं इस आदेश पर अमल करने की कोशिश की:

pip uninstall --user [python-package-name] 

लेकिन मुझे मिल गया:

no such option: --user 

मैं एक पैकेज है कि मैं pip install --user के साथ स्थापित, मैन्युअल रूप से खोजने और पैकेज को हटाने के अलावा अन्य की स्थापना रद्द कैसे कर सकते हैं?

मैं इस लेख

pip cannot uninstall from per-user site-packages directory

जो बताती है कि उपयोगकर्ता निर्देशिका से की स्थापना रद्द संकुल समर्थित नहीं करता है पाया है। लेख के मुताबिक अगर इसे

pip uninstall [package-name] 

स्थापित किया गया पैकेज उपयोगकर्ता निर्देशिका में भी खोजा जाएगा। लेकिन एक समस्या अभी भी मेरे लिए बनी हुई है। क्या होगा यदि एक ही पैकेज सिस्टम-व्यापी और प्रति उपयोगकर्ता दोनों स्थापित किया गया था? क्या होगा अगर किसी को किसी विशिष्ट उपयोगकर्ता निर्देशिका को लक्षित करने की आवश्यकता हो?

+1

नहीं, आपको प्रति उपयोगकर्ता एक वर्चुअलनव सेट करना होगा: समूह और इसमें मौजूद फ़ोल्डर को उचित सिस्टम अनुमतियां दें। – danigosa

+3

सभी उपयोगकर्ताओं के लिए पैकेज सिस्टम-व्यापी स्थापित करने का कोई तरीका नहीं है और फिर कुछ उपयोगकर्ताओं के लिए इसे अनइंस्टॉल करें। यदि पैकेज '--user' के रूप में स्थापित किया गया था तो 'user' के बिना अनइंस्टॉल करने से आप जो चाहते हैं वह करेंगे। – tripleee

+0

@ ट्रिपली: मेरे पास अनुमति प्रणाली व्यापक नहीं है और मैं नहीं चाहता हूं, मुझे बस प्रति मौजूदा उपयोगकर्ता – Serjik

उत्तर

51

इस अजगर का उपयोग कर 3.5 और लिनक्स पर पिप 7.1.2 परीक्षण किया है, स्थिति यह प्रतीत होता है:

  • pip install --user somepackage की स्थापना रद्द यह pip uninstall somepackage का उपयोग कर काम करता है $HOME/.local को स्थापित करता है, और।

  • यह सच है कि somepackage भी एक ही समय में सिस्टम-व्यापी स्थापित है या नहीं।

  • यदि पैकेज दोनों स्थानों पर स्थापित है, तो केवल स्थानीय एक को अनइंस्टॉल कर दिया जाएगा। pip का उपयोग कर पैकेज सिस्टम-वाईड को अनइंस्टॉल करने के लिए, पहले इसे स्थानीय रूप से अनइंस्टॉल करें, फिर root विशेषाधिकारों के साथ फिर से एक ही अनइंस्टॉल कमांड चलाएं।

  • पूर्वनिर्धारित उपयोगकर्ता स्थापित निर्देशिका के अलावा, pip install --target somedir somepackage पैकेज को somedir में स्थापित करेगा। pip का उपयोग करके ऐसे स्थान से पैकेज को अनइंस्टॉल करने का कोई तरीका नहीं है। (लेकिन वहाँ है कि pip uninstall --target लागू करता Github पर कुछ हद तक एक वर्ष मर्ज ना किए गए पुल का अनुरोध है।)

  • केवल स्थानों pip कभी से की स्थापना रद्द करें के बाद से

    सिस्टम-वाइड और पूर्वनिर्धारित उपयोगकर्ता के स्थानीय हैं, तो आप संबंधित उपयोगकर्ता के रूप में pip uninstall चलाने की आवश्यकता किसी दिए गए उपयोगकर्ता की स्थानीय इंस्टॉल निर्देशिका से अनइंस्टॉल करने के लिए।

3

जवाब नहीं संभव अभी तक है। आपको इसे मैन्युअल रूप से हटा देना होगा।

+2

मैन्युअल रूप से इसे हटाने के लिए क्या आवश्यक है? – Daniel

+0

पैकेज स्थापित करते समय, एक ट्रेसबैक था। अनइंस्टॉल इसके बाद कभी काम नहीं किया। – syam

10

उदाहरण MacOS पर पैकेज 'oauth2client' की स्थापना रद्द करने:

pip uninstall oauth2client 
0

के रूप में @ थॉमस-Lotze उल्लेख किया गया है, वर्तमान में पिप टूलींग कि क्योंकि वहां कोई --उपयोगकर्ता विकल्प इसी नहीं करता है। लेकिन मुझे क्या लगता है कि मैं ~/.local/bin में देख सकता हूं और विशिष्ट पाइप # # देख सकता हूं जो मुझे लगता है जैसे यह --user विकल्प से मेल खाता है।

मेरे मामले में:

[email protected]  ~/.l/bin  pwd 
/home/antho/.local/bin 
[email protected]  ~/.l/bin  ls pip* 
pip pip2 pip2.7 pip3 pip3.5 

और फिर बस विशिष्ट पिप संस्करण के साथ स्थापना रद्द करें।

संबंधित मुद्दे