2016-02-10 6 views
7

Standardmäßig durchsucht pip sowohl Paketnamen als auch Beschreibungen. Für einige Pakete führt dies zu einer großen Anzahl von falschen Treffern und das Finden desjenigen, den ich eigentlich will, ist ein Schmerz.Wie suche ich nur nach dem Namen eines Pip-Pakets?

Wie sage ich pip Ich möchte nur nach dem Namen suchen?

+3

Unter Linux können Sie etwas tun: 'pip Suche numpy | awk '{print $ 1}' | grep numpy' – ziky

+0

aber du könntest 'dolch -S name = package_name' verwenden –

Antwort

2

Es ist im Moment nicht möglich, weil die aktuelle Implementierung (pip 8.1.1) eine name OR summary Abfrage hard-coded in pip search command durchführt, obwohl die PyPI XML RPC verschiedene Abfragen unterstützt.

+0

Okay. Nicht was ich hören wollte, aber danke. – Andrew

4

Nun, auf Linux/OSX nicht zu schwer, etwas Semi-Handbuch mit ein bisschen grep/egrep zu tun (OSX erfordert, dass Sie egrep für Regex verwenden, Linux nicht).

Die Suche unten gibt eine Menge Sachen (41 eigentlich, wenn Sie es bis zum wc pip).

pip search psycopg

erste Zeilen 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 

Aber wenn man sich die pip Ausgabe, die Sie sehen, dass das packaname Feld mit Versionsnamen zu beenden neigt - psycopg (1.1.21)

Also, schreiben Sie stattdessen:

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

Ausgabe:

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 

Dies setzt voraus, dass es keine Klammer in Paketnamen, natürlich.

als wiederverwendbare bash-Funktion (put in .profile oder dergleichen):

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

Zur Ergänzung, wenn Sie nach dem genauen Namen des Pakets suchen müssen, können Sie wie 'pip search psycopg | egrep "^ psycopg \" ' (beginnt mit der Abfragezeichenfolge und enthält keine Leerzeichen). –

Verwandte Themen