विकसित मोड में स्थापित अजगर मॉड्यूल को हटाना


92

नमस्ते, मैं सेटपूल के उपयोग से अजगर की पैकेजिंग की कोशिश कर रहा था और परीक्षण करने के लिए मैंने मॉड्यूल को विकसित मोड में स्थापित किया। अर्थात

python setup.py develop

इसने मेरे मॉड्यूल निर्देशिका को sys.path में जोड़ दिया है। अब मैं मॉड्यूल को निकालना चाहता हूं क्या ऐसा करने का कोई तरीका है?

अग्रिम में धन्यवाद


4
pipअजगर संकुल के प्रबंधन के लिए स्थापना रद्द करने की क्षमता के साथ या अन्य प्रबंधक का उपयोग करना शुरू करें ।
टॉमस वाइसोकी

1
@ टॉमाज़ आप के python setup.py developसाथ कैसे बराबर करते हैं pip?
akaihola

7
पाइप स्थापित -e।
टॉमाज़ व्योस्की

11
'पाइप' इस सवाल का सही जवाब नहीं है। एक प्रोजेक्ट स्थापित करना जिसे आप चलाने के लिए या उपयोग करने के लिए 'पाइप' का उपयोग करके विकसित कर रहे हैं इसका मतलब है कि आपको हर बार जब आप स्रोत कोड को संशोधित करते हैं तो आपको फिर से स्थापित करना होगा। सही तरीका यह है कि मूल प्रश्न के रूप में 'setup.py विकास' का उपयोग किया जाता है।
जोनाथन हार्टले

6
@ जोनाथनहार्टले यह सिर्फ सादा झूठ है; पाइप में एक --editable(या -e) तर्क है जो सेटपूल के लिए लगभग समान रूप सेdevelop व्यवहार करता है ' । मैंने सोचा था कि शायद --editableआपकी टिप्पणी से नया था, लेकिन नहीं - GitHub पर पाइप रेपो की एक त्वरित खोज 2009 में वापस आने वाले संपादकों के संदर्भ को बदल देती है। और क्या है, मैं देख रहा हूं कि टिप्पणी करने से पहले ही यह टॉमस वायसकोकी ने पहले ही बता दिया था। !
मार्क अमेरी

जवाबों:


224

--uninstallया -uविकल्प का प्रयोग करें develop, यानी:

python setup.py develop --uninstall

यह इसे आसान-इंस्टॉल से हटा देगा। इसे हटाएं और .egg- लिंक को हटा दें। केवल एक चीज जो यह नहीं करती है वह स्क्रिप्ट (अभी तक) हटाती है।


3
ध्यान दें कि यदि आपके विकास संस्करण ने कुछ निष्पादनयोग्य स्थापित किए हैं, और आपने उन्हें अपने में बदल दिया है setup.py, तो आपको मैन्युअल रूप से उन्हें हटा देना चाहिए।
नॉरोक

1
मैं इसे सिर्फ व्याख्या के रूप में चलाता हूं, आउटपुट में कोई त्रुटि नहीं है, फिर भी मैं अभी भी विश्व स्तर पर अपने विकास पैकेज को आयात करने में सक्षम हूं, ऐसा लगता है कि इसे हटाया नहीं गया है। संपादित करें: मुझे पता है क्यों, मुझे इसे --userविकल्प के साथ चलाना पड़ा जैसा कि मैंने इंस्टालेशन के दौरान किया था:python setup.py develop --uninstall --user
मेराक

मुझे नहीं लगता कि यह सुरक्षित है क्योंकि चीजें मॉड्यूल में नाम बदलकर विकसित हो सकती हैं (उदाहरण के लिए)। आपको सब कुछ मैन्युअल रूप से निकालने की आवश्यकता है।
मैथिक 20

@ norok2 मैनुअल कमांड क्या होते हैं उन निष्पादनों को हटाने के लिए दौड़ना पड़ता है। जहाँ तक मुझे पता है कि उपरोक्त कार्य अजगर / पाइप के निश्चित संस्करण के लिए है, हालांकि मुझे यकीन नहीं है कि कौन से हैं।
चार्ली पार्कर

1
@CharlieParker rmया delआपके OS पर निर्भर करता है। मेरा मतलब यह है कि यदि आपके पास स्थापित करने के समय कुछ निष्पादनयोग्य थे और फिर अपने नाम (या उन्हें हटा दें) को अपने में बदल लेते हैं setup.py, तो setup.pyअब उनके बारे में नहीं जान पाएंगे (कोई बात नहीं pip/ आपका pythonसंस्करण) और आपको उनकी देखभाल करने की आवश्यकता है मैन्युअल रूप से। वे आमतौर binपर POSIX (लिनक्स पढ़ें, बीएसडी,
मैकओएस

16

अपनी साइट-संकुल निर्देशिका में आसान-संस्थापन संपादित करें। उस पैकेज के विकास संस्करण की ओर इंगित करने वाली लाइन को हटा दें।


हाँ, मैंने वास्तव में ऐसा किया था और एक और फ़ाइल थी जिसमें पैकेज-एग-लिंक या कुछ और था जिसे मैंने हटा दिया था और अब मॉड्यूल के संदर्भ में हटा दिया गया है धन्यवाद :)
कॉपिनिंजा

10
"setup.py विकसित --uninstall" आपके लिए ऐसा करता है, @ pjeby का उत्तर देखें
जोनाथन हार्टले

3
यह मेरे लिए तब काम आया जब develop --uninstallमैं असफल हो गया क्योंकि मैंने एक परियोजना को दो भागों में विभाजित किया था, और गलत एक मूल निर्देशिका में रहा।
वेस्ले बो

1

मुझे इससे पहले भी इसी तरह की समस्या रही है। मैंने जो किया वह मैं पायथन शेल को लोड करने के लिए किया था, मॉड्यूल को आयात किया और फिर उसका प्रिंट लिया__file__ विशेषता को । वहाँ से मैं बस उस फ़ोल्डर या फ़ाइल को हटा दूंगा जो संबद्ध थी।

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

मैं अपनी सभी परियोजनाओं को अब वहाँ निहित वर्चुअन के अंदर रखता हूँ, जो मुझे उन सभी मॉड्यूलों को स्थापित करने और उपयोग करने की अनुमति देता है जिन्हें मैं अन्य परियोजनाओं से मॉड्यूल को खराब करने की चिंता किए बिना चाहता हूं।


अच्छी तरह से अगली बार जब मैं पैकेज के साथ खेलता हूं तो मैं इसका उपयोग करूंगा ताकि मैं अपने सिस्टम पायथन को खराब न करूं। जानकारी के लिए धन्यवाद
कोपीनिन्जा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.