Bash scripting: A verificação de crossplataforma é o pacote python instalado no sistema?

1

Por exemplo, eu quero verificar se o py-sqlite3 está disponível ..? Um dos métodos seria chamar esse comando com algum script python mínimo e erro de captura?

Eu quero fazer a verificação de qualquer sistema Linux distro e unix (pelo menos bsd)

Qual poderia ser a melhor maneira de conseguir isso?

p. Por favor, forneça um exemplo de captura de erro de script de shell, porque eu não sou tão avançado em scripts de shell

    
por holms 17.02.2011 / 23:04

4 respostas

1

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

    
por 21.07.2018 / 19:02
2

No bash:

$ python -c 'import sqlite3' 2>/dev/null && echo "python sqlite3 modules install" || echo "python sqlite3 modules not install"
python sqlite3 modules install

$ python -c 'import sqlite3' 2>/dev/null && echo "python sqlite3 modules install" || echo "python sqlite3 modules not install"
python sqlite3 modules not install
    
por 17.02.2011 / 23:47
2
package_exist(){
    package=$1
    if pip freeze | grep $package=; then
        echo "$package found"
    else
        echo "$package not found"
    fi
}

e depois você pode usá-lo assim:

package_exist package_name
    
por 30.08.2018 / 09:32
1

Isso seria fácil de fazer com o Python.

import sys

try:
    import sqlite3
except ImportError:
    sys.exit(1)
else:
    sys.exit(0)

Sai com return code 0 se puder importar ou return code 1 se não puder.

Andrew

    
por 17.02.2011 / 23:12

Tags