É necessário verificar se ele está instalado ou não antes que o programa possa ser executado.
package-management
python
hubatrix
fonte
fonte
pip install
. Se já estiver instalado, não o instalará novamente.Respostas:
Digite o shell:
pydoc modules
.Isso listará os módulos e você pode fazer a grep do módulo que deseja.
Encontrado no stackoverflow aqui
fonte
Você deve usar
pip
olist
comando s com grep, que lista apenas os pacotes instalados (nem todos os módulos e seus vizinhos):Se package_name corresponder a vários pacotes instalados, por exemplo, procurar
boto
quandobotocore
também está instalado, usar em-w
vez de-F
pode ajudar, como sugere @TaraPrasadGurung. Isso não lista o pacote exato, pois-w
vê caracteres comuns nos nomes dos pacotes como limites de palavras. Portanto, se você possuirequests
erequests-cache
instalou orruamel.yaml
ruamel.yaml.cmd` e precisa de exatamente uma linha de saída, precisa fazer algo como:Por favor, note que desde que
.
corresponde a qualquer caractere quando usando-E
, você precisa escapar it.¹¹ E sim que é necessário que haja um pacote
ruamel_yaml
. Nem todo gerenciador de pacotes épip
compatível ao lidar com pacotes de namespace.fonte
-w
como limites de palavras e são comuns nos nomes de pacotes. Eu recebo várias correspondências quando uso sua sugestão usandogrep -w ruamel.yaml
ougrep -w request
pip list | grep -F mxnet-cu101
imprimemxnet-cu101 1.5.0
, mas não exatamente onde está instalado. alguma idéia de como obter o caminho instalado? `Se o pacote não fizer algo louco ou demorado na importação, você pode tentar realmente importá-lo:
fonte
Eu encontrei as respostas existentes incompletas e sem exemplos suficientes. Aqui está a solução em que me decidi:
Uma essência do Github deste exemplo pode ser encontrada aqui: https://gist.github.com/shaypal5/d505af9953cd86f59c750fa600ee4ba6
fonte
Você também pode usar algo assim em seus scripts.
O que você obteria quando um pacote não estiver instalado.
O que você obteria quando um pacote estiver instalado.
Funciona em python2 e python3 e, em seguida, você instala com base no código de saída.
fonte
Eu usei uma versão um pouco mais rigorosa da resposta de Anthon, para uso em um script:
Os dois primeiros greps destinam-se a remover as linhas do cabeçalho da saída do pip3.
O corte seleciona apenas os nomes dos pacotes (descartando os números de versão).
Em seguida, o grep final pode executar uma pesquisa exata pelos
$package_name
Se o pacote for encontrado, ele exibirá o nome do pacote e retornará com o código de saída 0. Se você não quiser ver o nome do pacote, termine o comando com
>/dev/null
fonte
em um shell / prompt do Python. :
fonte
Testado com pip3:
O código de saída ($?) Seria "0" no caso de o módulo estar instalado, senão "1".
O Grepping tem o problema de "falsos positivos": A saída de um
corresponderia a qualquer módulo cujo nome contenha "NAME", por exemplo, também corresponderá a "some_other_NAME".
Enquanto
somente combinações em partidas completas.
fonte