2015-11-02 6 views
8

मेरे पास एक फ़ाइल है जिसे मुझे संदेह है कि pip द्वारा स्थापित किया गया था। मुझे यह कैसे पता चलेगा कि कौन सा पैकेज उस फ़ाइल को स्थापित करता है? दूसरे शब्दों में, मैं pacman -Qo filename के समान लेकिन पाइप के लिए एक कमांड की तलाश में हूं। क्या यह अस्तित्व में है? या मैं पीपी + grep के कुछ संयोजन का उपयोग करना चाहिए? उस स्थिति में, मुझे नहीं पता कि सभी फाइलों को कैसे स्थापित किया जाए।कैसे पाइप पैकेज फ़ाइल के मालिक को खोजने के लिए?

+1

"फ़ाइल" के साथ आपका क्या मतलब है? एक मॉड्यूल? एक पैकेज? – poke

+0

@poke मेरे एचडी में मेरे पास एक फ़ाइल है .py और मैं जानना चाहता हूं कि मैंने पिछले साल एक पैकेज स्थापित किया था जो उस फ़ाइल को मेरे कंप्यूटर में कॉपी करता था। (वास्तव में फ़ाइल '/ usr/bin/rst2html.py' है) लेकिन मेरा प्रश्न यह है कि इसे सामान्य रूप से कैसे किया जाए। – DdD

उत्तर

3

तब आप उस फ़ाइल की तलाश में परिणामों के माध्यम से खोज

pip list | cut -d" " -f1 | xargs pip show -f 

साथ की कोशिश कर सकते।

+0

आप अपने उत्तर में 'grep' क्यों नहीं जोड़ते हैं, क्या यह पूर्ण समाधान नहीं होगा? –

+0

धन्यवाद, यह लगभग काम करता है। लेकिन, अधिकांश पैकेजों के लिए मुझे 'फ़ाइलें: इंस्टॉल-files.txt' का पता नहीं लगाया जा सकता है यह मेरे सिस्टम का मुद्दा है? – DdD

+1

@KraZmAzzD: मुझे लगता है कि 'पीआईपी सूची' में ऐसे पैकेज शामिल हैं जो 'पाइप' द्वारा स्थापित नहीं किए गए थे, लेकिन आपके सिस्टम पैकेज प्रबंधक द्वारा। इन्हें आमतौर पर 'install-files.txt' फ़ाइल शामिल नहीं किया जाएगा। –

0

इसे आजमाएं!

find_pkg_by_filename(){ for pkg in $(pip list | cut -d" " -f1) ; do if pip show -f "$pkg" | grep "$1" ; then echo "=== Above files found in package $pkg ===" ; fi ; done ; } 

find_pkg_by_filename somefilename 

ध्यान दें कि अगर आप grep करने के लिए -q जोड़ने के लिए, यह जैसे ही कोई भी मिलान होने से बाहर हो जाएंगे, और फिर रंज टूट पाइप के बारे में शिकायत करेंगे।

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