Необходимо проверить, установлена ли она или нет, прежде чем программа сможет работать.
package-management
python
hubatrix
источник
источник
pip install
. Если он уже установлен, он не будет установлен снова.Ответы:
Введите в оболочке:
pydoc modules
.Это будет список модулей, и вы можете grep модуль, который вы хотите.
Нашел на stackoverflow здесь
источник
Вы должны использовать
pip
«slist
команды с Grep, что только списки установленных пакетов (не все модули и их соседи, а):Если имя_пакета совпадает с несколькими установленными пакетами, например поиск,
boto
когдаbotocore
также установлен, то может помочь использование-w
вместо-F
, как @TaraPrasadGurung предлагает. Это не перечисляет точный пакет, поскольку-w
видит символы, общие в именах пакетов, как границы слов. Так что если у вас естьrequests
иrequests-cache
установлен или илиruamel.yaml
и ruamel.yaml.cmd` и вам нужна ровно одна строка вывода, вам нужно сделать что-то вроде:Обратите внимание, что, так как
.
соответствует любому символу при использовании-E
, вам необходимо его избежать.¹ И да, это необходимо, поскольку есть пакет
ruamel_yaml
. Не каждый менеджер пакетовpip
совместим с пакетами пространства имен.источник
-w
как границы слов и являются общими в именах пакетов. Я получаю несколько совпадений, когда использую ваше предложение, используяgrep -w ruamel.yaml
илиgrep -w request
pip list | grep -F mxnet-cu101
печатаетmxnet-cu101 1.5.0
, но не точно, где он установлен. Есть идеи, как получить установленный путь? `Если пакет не делает ничего сумасшедшего или отнимает много времени при импорте, вы можете попробовать импортировать его:
источник
Я нашел существующие ответы неполными и не хватает достаточно хороших примеров. Вот решение, на котором я остановился:
Суть этого примера на Github можно найти здесь: https://gist.github.com/shaypal5/d505af9953cd86f59c750fa600ee4ba6
источник
Вы также можете использовать что-то подобное в своих скриптах.
Что вы получите, если пакет не установлен.
Что вы получите, когда пакет установлен.
Работает в python2 и python3, а затем вы устанавливаете на основе кода выхода.
источник
Я использовал более строгую версию ответа Энтона для использования в сценарии:
Первые два greps предназначены для удаления строк заголовка из вывода pip3.
Затем вырезка выбирает только имена пакетов (без номеров версий).
Тогда конечный grep может выполнить точный поиск соответствующих
$package_name
Если пакет найден, он отобразит имя пакета и вернется с кодом завершения 0. Если вы не хотите видеть имя пакета, завершите команду командой
>/dev/null
источник
в оболочке / приглашении Python. :
источник
Протестировано с pip3:
Код выхода ($?) Будет равен «0», если модуль установлен, иначе «1».
Греппинг имеет проблему "ложных срабатываний": вывод
будет соответствовать любому модулю, имя которого содержит «NAME», например, также «some_other_NAME».
Пока
только совпадения на полных совпадениях.
источник