Digite no shell: pydoc modules
.
Isto irá listar módulos e você pode grep o módulo que você deseja.
Encontrado em stackoverflow aqui
É necessário verificar se está instalado ou não antes de o programa ser executado.
Digite no shell: pydoc modules
.
Isto irá listar módulos e você pode grep o módulo que você deseja.
Encontrado em stackoverflow aqui
Você deve usar o comando pip
list
com o grep, que lista apenas os pacotes instalados (nem todos os módulos e seus vizinhos também):
pip list | grep -F package_name
Se o pacote não fizer algo maluco ou demorado na importação, você pode tentar importá-lo:
if python -c "import package_name" &> /dev/null; then
echo 'all good'
else
echo 'uh oh'
fi
Eu encontrei as respostas existentes incompletas e faltando bons exemplos suficientes. Aqui está a solução que eu decidi:
# an example checking if the pandas package is installed
if python -c 'import pkgutil; exit(not pkgutil.find_loader("pandas"))'; then
echo 'pandas found'
else
echo 'pandas not found'
fi
Um github do exemplo pode ser encontrado aqui: link
Você também pode usar algo assim em seus scripts.
python -c "import sys, pkgutil; sys.exit(0 if pkgutil.find_loader('$Package') else 1)"
O que você ganharia quando um pacote não estivesse instalado.
Package=psutil
python3 -c "import sys, pkgutil; sys.exit(0 if pkgutil.find_loader('$Package') else 1)"
echo $?
1
O que você ganharia quando um pacote é instalado.
Package=requests
python3 -c "import sys, pkgutil; sys.exit(0 if pkgutil.find_loader('$Package') else 1)"
echo $?
0
Funciona em python2 e python3 e, em seguida, você instala com base no código de saída.
Eu usei uma versão ligeiramente mais estrita da resposta do Anthon, para uso em um script:
pip3 list |
grep -v "^Package *Version$" | grep -v "^-*$" |
cut -d ' ' -f 1 |
grep -xF "$package_name"
Os dois primeiros greps pretendem retirar as linhas de 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 realizar uma pesquisa exata do $package_name
relevante
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
Tags package-management python