Es necesario verificar si está instalado o no antes de que el programa pueda ejecutarse.
package-management
python
hubatrix
fuente
fuente
pip install
. Si ya está instalado, no lo volverá a instalar.Respuestas:
Llene en el shell:
pydoc modules
.Esto mostrará una lista de los módulos y puede seleccionar el módulo que desee.
Encontrado en stackoverflow aquí
fuente
Debe usar
pip
ellist
comando con grep, que solo enumera los paquetes instalados (no todos los módulos y sus vecinos también):Si package_name coincide con varios paquetes instalados, por ejemplo, buscar
boto
cuándobotocore
también está instalado, usar en-w
lugar de-F
puede ayudar, como sugiere @TaraPrasadGurung. Esto no enumera el paquete exacto, ya que-w
ve los caracteres comunes en los nombres de paquetes como límites de palabras. Entonces, si tienerequests
erequests-cache
instaló oruamel.yaml
y ruamel.yaml.cmd` y necesita exactamente una línea de salida , debe hacer algo como:Tenga en cuenta que, dado que
.
coincide con cualquier carácter al usarlo-E
, debe escapar de él.¹ Y sí, eso es necesario ya que hay un paquete
ruamel_yaml
. No todos los gestores de paquetes sonpip
compatibles cuando se trata de paquetes de espacios de nombres.fuente
-w
como límites de palabras y son comunes en los nombres de paquetes. Recibo múltiples coincidencias cuando uso su sugerencia usandogrep -w ruamel.yaml
ogrep -w request
pip list | grep -F mxnet-cu101
imprimemxnet-cu101 1.5.0
, pero no exactamente dónde está instalado. alguna idea de cómo obtener la ruta instalada? `Si el paquete no hace algo loco o consume mucho tiempo en la importación, puede intentar importarlo:
fuente
He encontrado respuestas existentes incompletas y que carecen de ejemplos suficientemente buenos. Aquí está la solución que he decidido:
Puede encontrar una idea general de Github de este ejemplo aquí: https://gist.github.com/shaypal5/d505af9953cd86f59c750fa600ee4ba6
fuente
También puede usar algo como esto en sus scripts.
Lo que obtendría cuando un paquete no está instalado.
Lo que obtendría cuando se instala un paquete.
Funciona en python2 y python3, y luego se instala según el código de salida.
fuente
Usé una versión un poco más estricta de la respuesta de Anthon, para usar en un script:
Los primeros dos greps están destinados a quitar las líneas de encabezado de la salida de pip3.
El corte luego selecciona solo los nombres de los paquetes (descartando los números de versión).
Luego, el grep final puede realizar una búsqueda exacta del
$package_name
Si se encuentra el paquete, mostrará el nombre del paquete y regresará con el código de salida 0. Si no desea ver el nombre del paquete, finalice el comando con
>/dev/null
fuente
en un shell / prompt de Python. :
fuente
Probado con pip3:
El código de salida ($?) Sería "0" en caso de que el módulo esté instalado, de lo contrario, "1".
Grepping tiene el problema de los "falsos positivos": la salida de un
coincidiría en cualquier módulo cuyo nombre contenga "NAME", por ejemplo, también coincida con "some_other_NAME".
Mientras
solo partidos en partidos completos.
fuente