Как выполнить поиск пакета pip только по имени?
по умолчанию pip ищет как имена пакетов, так и их описания. Для некоторых пакетов это приводит к огромному количеству ложных попаданий, и найти тот, который я действительно хочу, - это боль.
Как я говорю pip, что хочу искать только по имени?
2 ответов
на данный момент это невозможно, потому что текущая реализация (pip 8.1.1) делает name OR summary
запрос жестко закодированный в команде поиска pip, хотя PyPI XML RPC поддерживает различные запросы.
ну, на Linux / OSX не трудно сделать что-то полуавтоматическое с немного grep
/egrep
(OSX, как правило, требует от вас использовать egrep для регулярных выражений, Linux-нет).
поиск ниже возвращает много вещей (41 на самом деле, если вы pip его до wc
).
pip search 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
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
но если вы посмотрите на вывод pip, вы увидите, что поле 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
это предполагает, что в имени пакета нет круглых скобок, конечно.
как многоразовая функция bash (put in .profile
или как):
pipsearchpackagename(){
#a bash function.
pip search | egrep "^.*"".*\("
}