2016-02-10 2 views
7

डिफ़ॉल्ट पाइप द्वारा पैकेज नाम और विवरण दोनों खोजता है। कुछ पैकेजों के लिए इसके परिणामस्वरूप बड़ी संख्या में नकली हिट होती है और मुझे लगता है कि मैं वास्तव में एक दर्द चाहता हूं।मैं केवल नाम से एक पीपी पैकेज की खोज कैसे करूं?

मैं कैसे पाइप बताता हूं मैं केवल नाम से खोजना चाहता हूं?

+3

linux पर आप कुछ इस तरह कर सकते हैं::

एक पुन: प्रयोज्य बैश समारोह (.profile में डाल या की तरह) के रूप में

'पिप खोज numpy | अजीब '{प्रिंट $ 1}' | grep numpy' – ziky

+0

लेकिन आप 'yolk -S name = package_name' –

उत्तर

2

इस समय संभव नहीं है, क्योंकि वर्तमान कार्यान्वयन (पीआईपी 8.1.1) name OR summary क्वेरी hard-coded in pip search command करता है, हालांकि PyPI XML RPC विभिन्न प्रश्नों का समर्थन करता है।

+0

ठीक से उपयोग कर सकते हैं। मैं नहीं सुनना चाहता था, लेकिन धन्यवाद। – Andrew

4

ठीक है, लिनक्स/ओएसएक्स पर grep/egrep के साथ अर्ध-मैनुअल करने के लिए कड़ी मेहनत नहीं करना है (ओएसएक्स आपको रेगेक्स के लिए egrep का उपयोग करने की आवश्यकता है, लिनक्स नहीं करता है)।

नीचे दी गई खोज बहुत सारी चीज़ें लौटाती है (41 वास्तव में यदि आप इसे wc तक पाइप करते हैं)।

pip search psycopg

ouput की पहली कुछ पंक्तियों:

gevent-psycopg2 (0.0.3)    - pip-installable package for patching psycopg2 to use gevent 
django-psycopg2-pool (0.1.1)   - A db backend for Django using the gevent psycopg2-pool 
pg4nosql (0.4.2)      - A simple psycopg2 based wrapper for nosql like database interaction with python. 
zope.psycopgda (1.1.1)    - Psycopg Database Adapter for Zope 3 
qmarkpg (0.2)      - A psycopg2 wrapper using the qmark parameters style 

लेकिन अगर आप पिप उत्पादन को देखने के आप देखते हैं कि packaname क्षेत्र संस्करण नाम के साथ समाप्त करने के लिए जाता है - psycopg (1.1.21)

तो, यह बजाय लिखें:

pip search psycopg | egrep "^.*psycopg.*\("

उत्पादन:

gevent-psycopg2 (0.0.3)    - pip-installable package for patching psycopg2 to use gevent 
django-psycopg2-pool (0.1.1)   - A db backend for Django using the gevent psycopg2-pool 
zope.psycopgda (1.1.1)    - Psycopg Database Adapter for Zope 3 
psycopg2-managed-connection (1.0.0) - Thread-safe connection manager for psycopg2 connections. 
db-psycopg2 (0.0.7)     - psycopg2 driver for db 
kr-impatient-psycopg2 (2.5.2.dev0) - Python-PostgreSQL Database Adapter 
tornado-psycopg2 (0.3.1)    - Tornado driver for support asynchronous mode for psycopg2. 
psycopg2 (2.6.1)      - psycopg2 - Python-PostgreSQL Database Adapter 
psycopg2-dateutils (0.1)    - Use dateutils.relativedelta to represent PostgreSQL interval types 
psycopg2ct (2.4.4)     - An implementation of the psycopg2 module using ctypes. 
psycopgwrap (1.05)     - A wrapper around psycopg2 to make common things easier. 
psycopgda (1.0)      - Psycopg Database Adapter for Zope 3 
psycopg-postgis (0.1.1)    - Pyscopg helpers to work with PostGIS. 
psycopg2cffi (2.7.2)     - .. image:: https://travis-ci.org/chtd/psycopg2cffi.svg?branch=master 
psycopg2cffi-compat (1.1)   - A Simple library to enable psycopg2 compatability 
little_pger (0.65)     - A thin layer just a tad above SQL, for use with PostgreSQL and psycopg2, when you want to wrap queries in a convenient way, using plain data structures (but you don't feel like using an ORM, for some reason). 
psycopg (1.1.21)      - Python-PostgreSQL Database Adapter 
psycopg2da (2.0.9)     - Python psycopg2 database adapter for Zope 

इसका मतलब यह है पैकेज का नाम के भीतर कोई कोष्ठक ज़ाहिर है, देखते हैं कि।

pipsearchpackagename(){ 
    #a bash function. 
    pip search $1 | egrep "^.*"$1".*\(" 
} 
+0

पूरक होने के लिए, जब आपको पैकेज के सटीक नाम की खोज करने की आवश्यकता होती है तो आप 'पीआईपी खोज psycopg' जैसे उपयोग कर सकते हैं। egrep "^ psycopg \" ' (क्वेरी स्ट्रिंग से शुरू होता है और इसमें कोई सफेद जगह नहीं होती है)। –

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