python Easy_install/pip के साथ स्थापित सभी संकुल खोजें?




easy-install pypi (12)

क्या सभी पायथन पीपीपीआई पैकेज खोजने का कोई तरीका है जो easy_install या pip के साथ स्थापित किए गए थे? मेरा मतलब है, वितरण उपकरण के साथ स्थापित / स्थापित किया गया सब कुछ छोड़कर (इस मामले में डेबियन पर उपयुक्त है)।


pip freeze स्थापित संकुल और उनके संस्करणों की एक सूची आउटपुट करेगा। यह आपको उन पैकेजों को एक फ़ाइल में लिखने की अनुमति देता है जिसे बाद में एक नया वातावरण स्थापित करने के लिए उपयोग किया जा सकता है।

https://pip.pypa.io/en/stable/reference/pip_freeze/#pip-freeze


site-packages/ (और dist-packages/ यदि यह मौजूद है) में सभी फ़ाइल / फ़ोल्डर नाम प्राप्त करें, और पैकेज के माध्यम से स्थापित किए गए लोगों को पट्टी करने के लिए अपने पैकेज प्रबंधक का उपयोग करें।


@ पॉल वूलकॉक के जवाब में जोड़ना,

$ pip freeze > requirements.txt

मौजूदा स्थान पर सक्रिय वातावरण में सभी स्थापित संकुल के साथ एक आवश्यकता फ़ाइल बनायेगा जिसे आप चला सकते हैं

$ pip install -r requirements.txt

किसी अन्य वातावरण में आवश्यकताओं को स्थापित करने के लिए।


अगर कोई सोच रहा है कि आप 'पीआईपी शो' कमांड का उपयोग कर सकते हैं।

pip show [options] <package>

यह दिए गए पैकेज की इंस्टॉल निर्देशिका सूचीबद्ध करेगा।


के साथ शुरू:

$ pip list

सभी संकुलों को सूचीबद्ध करने के लिए। एक बार जब आपको वह पैकेज मिल जाए जो आप चाहते हैं, तो इसका उपयोग करें:

$ pip show <package-name>

यह आपको इस फ़ोल्डर के बारे में विवरण दिखाएगा, जिसमें इसके फ़ोल्डर भी शामिल हैं। यदि आप पहले ही पैकेज नाम जानते हैं तो आप पहले भाग को छोड़ सकते हैं

पाइप शो पर अधिक जानकारी के लिए here क्लिक here और https://pip.pypa.io/en/latest/reference/pip_list/ पीपी सूची पर अधिक जानकारी के लिए।

उदाहरण:

$ pip show jupyter
Name: jupyter
Version: 1.0.0
Summary: Jupyter metapackage. Install all the Jupyter components in one go.
Home-page: http://jupyter.org
Author: Jupyter Development Team
Author-email: [email protected]
License: BSD
Location: /usr/local/lib/python2.7/site-packages
Requires: ipywidgets, nbconvert, notebook, jupyter-console, qtconsole, ipykernel    

यदि डेबियन pip install डिफ़ॉल्ट लक्ष्य के संबंध में हाल ही में उबंटू संस्करणों की तरह व्यवहार करता है, तो यह आसान है: यह /usr/local/lib/ apt डिफ़ॉल्ट लक्ष्य के बजाय /usr/local/lib/ स्थापित होता है। https://askubuntu.com/questions/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip/259747#259747

मैं एक आर्कलिंक्स उपयोगकर्ता हूं और जैसा कि मैंने पीआईपी के साथ प्रयोग किया था, मैंने इसी समस्या से मुलाकात की। यहां बताया गया है कि मैंने इसे आर्क में कैसे हल किया।

find /usr/lib/python2.7/site-packages -maxdepth 2 -name __init__.py | xargs pacman -Qo | grep 'No package'

कुंजी यहां /usr/lib/python2.7/site-packages , जो निर्देशिका पीआईपी स्थापित करता है, वाईएमएमवी। pacman -Qo है कि कैसे आर्क के पीएसी pacman -Qo आदमी ager फ़ाइल के स्वामित्व के लिए जाँच करता है। No package उस रिटर्न का हिस्सा नहीं है जब कोई पैकेज फ़ाइल का मालिक नहीं होता है: error: No package owns $FILENAME । ट्रिकी वर्कअराउंड: मैं __init__.py बारे में पूछताछ कर रहा हूं क्योंकि निर्देशिका में आने पर pacman -Qo थोड़ा अज्ञान है :(

अन्य डिस्ट्रोज़ के लिए इसे करने के लिए, आपको यह पता लगाना होगा कि pip कहां स्थापित करता है (बस sudo pip install कुछ sudo pip install ), फ़ाइल के स्वामित्व को कैसे पूछताछ करें (डेबियन / उबंटू विधि dpkg -S ) है और "पैकेज नहीं है उस पथ का मालिक है "वापसी (डेबियन / उबंटू no path found matching pattern )। डेबियन / उबंटू उपयोगकर्ता, सावधान रहें: dpkg -S विफल हो जाएगा यदि आप इसे एक प्रतीकात्मक लिंक देते हैं। realpath का उपयोग कर इसे पहले हल करें। इस कदर:

find /usr/local/lib/python2.7/dist-packages -maxdepth 2 -name __init__.py | xargs realpath | xargs dpkg -S 2>&1 | grep 'no path found'

फेडोरा उपयोगकर्ता कोशिश कर सकते हैं (धन्यवाद @eddygeek):

find /usr/lib/python2.7/site-packages -maxdepth 2 -name __init__.py | xargs rpm -qf | grep 'not owned by any package'

कम से कम उबंटू (शायद अन्य भी) के लिए यह काम करता है (इस धागे में पिछली post से प्रेरित):

printf "Installed with pip:";
pip list 2>/dev/null | gawk '{print $1;}' | while read; do pip show "${REPLY}" 2>/dev/null | grep 'Location: /usr/local/lib/python2.7/dist-packages' >/dev/null; if (( $? == 0 )); then printf " ${REPLY}"; fi; done; echo

pip.get_installed_distributions() स्थापित संकुलों की एक सूची देगा

import pip
from os.path import join

for package in pip.get_installed_distributions():
    print(package.location) # you can exclude packages that's in /usr/XXX
    print(join(package.location, package._get_metadata("top_level.txt"))) # root directory of this package

पीपी के नए संस्करणों में पीपी सूची -एल या पीआईपी फ्रीज- एल के माध्यम से ओपी चाहता है जो करने की क्षमता है। डेबियन (कम से कम) पर मैन पेज यह स्पष्ट नहीं करता है, और मैंने केवल यह पाया है - यह धारणा के तहत कि सुविधा मौजूद होनी चाहिए - पीआईपी सूची --help के साथ

हाल ही की टिप्पणियां हैं जो सुझाव देती हैं कि यह सुविधा दस्तावेज या मौजूदा उत्तरों (हालांकि कुछ लोगों द्वारा संकेतित) में स्पष्ट नहीं है, इसलिए मैंने सोचा कि मुझे पोस्ट करना चाहिए। मैं एक टिप्पणी के रूप में ऐसा करना पसंद करता, लेकिन मेरे पास प्रतिष्ठा अंक नहीं हैं।


फेडोरा या अन्य आरपीएम डिस्ट्रोज़ के लिए एक लाइनर है (@barraponto युक्तियों के आधार पर):

find /usr/lib/python2.7/site-packages -maxdepth 2 -name __init__.py | xargs rpm -qf | grep 'not owned by any package'

क्लीनर आउटपुट प्राप्त करने के लिए इसे पिछले कमांड में संलग्न करें:

 | sed -r 's:.*/(\w+)/__.*:\1:'

पाइप फ्रीज सभी स्थापित संकुल सूचीबद्ध करता है भले ही पीपी / easy_install द्वारा नहीं। Cento / Redhat पर आरपीएम के माध्यम से स्थापित एक पैकेज पाया जाता है।


ध्यान दें कि यदि आपके कंप्यूटर पर पाइथन के कई संस्करण स्थापित हैं, तो आपके पास प्रत्येक के साथ जुड़े पाइप के कुछ संस्करण हो सकते हैं।

आपके संगठनों के आधार पर, आपको इस बात का बहुत सावधान रहना पड़ सकता है कि आप किस पीपी कमांड का उपयोग करते हैं:

pip3 list 

मेरे लिए काम किया, जहां मैं पाइथन 3.4 चला रहा हूँ। बस pip list का उपयोग करके त्रुटि लौटा दी The program 'pip' is currently not installed. You can install it by typing: sudo apt-get install python-pip The program 'pip' is currently not installed. You can install it by typing: sudo apt-get install python-pip





pypi