¿Cómo comprobar qué versión de nltk, scikit learn está instalada?

102

En el script de shell, estoy verificando si estos paquetes están instalados o no, si no están instalados, instálelos. Entonces, dentro del script de shell:

import nltk
echo nltk.__version__

pero detiene el script de shell en la importlínea

en linux terminal traté de ver de esta manera:

which nltk

que no da nada de pensar que está instalado.

¿Hay alguna otra forma de verificar la instalación de este paquete en el script de shell? Si no está instalado, instálelo también.

nlper
fuente
3
¿Por qué lo hace dentro de un script de shell? ¿Por qué no lo hace dentro de un archivo Python?
Ffisegydd
@Ffisegydd: Tengo una regla generalizada, en la que en shellscript verifico todos los paquetes necesarios, si no existe algún paquete, luego instálelo, de lo contrario, pase a la siguiente verificación. Como necesito verificar y ejecutar algunos otros Python y shellscripts, lo estoy usando. ¿Usar shellscriptpara esto es una mala idea?
nlper
Será mucho más fácil probar que existen usando un script de Python (imo). Siempre puede llamar al script de Python desde un script de shell, si realmente lo desea. Si solo usa la sintaxis de shell, tendrá que averiguar dónde se encuentra cada paquete, encontrar el paquete y luego analizar su nombre de archivo para los números de versión de alguna manera.
Ffisegydd
@Ffisegydd: gracias, pero en ese caso tengo que escribir un script de Python para validar cada paquete que quiero verificar y ejecutar ese script para validarlo. según lo que entiendo.
2015
¿O simplemente los pone todos en un guión?
Ffisegydd

Respuestas:

158

import nltk es la sintaxis de Python y, como tal, no funcionará en un script de shell.

Para probar la versión de nltky scikit_learn, puede escribir un script de Python y ejecutarlo. Tal secuencia de comandos puede parecer

import nltk
import sklearn

print('The nltk version is {}.'.format(nltk.__version__))
print('The scikit-learn version is {}.'.format(sklearn.__version__))

# The nltk version is 3.0.0.
# The scikit-learn version is 0.15.2.

Tenga en cuenta que no se garantiza que todos los paquetes de Python tengan un __version__atributo, por lo que para algunos otros puede fallar, pero para nltk y scikit-learn al menos funcionará.

Ffisegydd
fuente
@Ffisgydd: gracias, pero no es posible verificar shellscript
nlper
@Ffisegydd Gran respuesta, pero demasiado complicada para una tarea tan trivial
agcala
@nlper Para shellscript: escriba pythony >>> import sklearny luego >>> sklearn.__version__y obtendrá la versión impresa en shell. Lo mismo paranltk
Vamshi Pulluri
27

Prueba esto:

$ python -c "import nltk; print nltk.__version__"
Aaron
fuente
gracias, pero ¿no es posible registrarse?shellscript
nlper
6
@nlper, este es un shellcódigo perfectamente válido . No veo ningún problema con esa respuesta. Tenga en cuenta que puede usar var=$(<some command>)para guardar la salida en una variable
cel
2
@cel: lo siento, lo tengo. No tengo suficiente crédito para votar la respuesta
:)
21

En los sistemas Windows®, simplemente puede probar

pip3 list | findstr scikit

scikit-learn                  0.22.1

Si está tomando Anaconda, pruebe

conda list scikit

scikit-learn              0.22.1           py37h6288b17_0

Y esto se puede utilizar para averiguar la versión de cualquier paquete que haya instalado. Por ejemplo

pip3 list | findstr numpy

numpy                         1.17.4
numpydoc                      0.9.2

O si desea buscar más de un paquete a la vez

pip3 list | findstr "scikit numpy"

numpy                         1.17.4
numpydoc                      0.9.2
scikit-learn                  0.22.1

Tenga en cuenta que los caracteres de comillas son obligatorios cuando se busca más de una palabra.

Cuídate.

agcala
fuente
4
PROBAR: lista de $ pip | grep scikit * - ¿Por qué buscar en un largo cuando grep es más rápido?
Oaxacamatt
@oaxacamatt No estoy seguro de que puedas usar grep en sistemas Windows.
agcala
7

Para verificar la versión de scikit-learn en el script de shell, si tiene pip instalado, puede probar este comando

pip freeze | grep scikit-learn
scikit-learn==0.17.1

¡Espero eso ayude!

prabhat
fuente
Solo en plataforma Linux. ¿Y el resto de nosotros los mortales :)
agcala
5

Puede encontrar la versión NLTK simplemente haciendo:

In [1]: import nltk

In [2]: nltk.__version__
Out[2]: '3.2.5'

Y de manera similar para scikit-learn,

In [3]: import sklearn

In [4]: sklearn.__version__
Out[4]: '0.19.0'

Estoy usando python3 aquí.

kmario23
fuente
1
Esto funcionó para mí en Python 3.5, nltk 3.2.2 en Windows 8 de 64 bits
Rob Mulder
Esto no me funcionó en Python 2.7, nltk 3.2.5 en Ubuntu 16.04 de 64 bits
abggcv
0

puede verificar desde una celda de cuaderno de Python de la siguiente manera

!pip install --upgrade nltk     # needed if nltk is not already installed
import nltk      
print('The nltk version is {}.'.format(nltk.__version__))
print('The nltk version is '+ str(nltk.__version__))

y

#!pip install --upgrade sklearn      # needed if sklearn is not already installed
import sklearn
print('The scikit-learn version is {}.'.format(sklearn.__version__))
print('The scikit-learn version is '+ str(nltk.__version__))
Orhan Celik
fuente
-1

En mi máquina que es ubuntu 14.04 con python 2.7 instalado, si voy aquí,

/usr/local/lib/python2.7/dist-packages/nltk/

hay un archivo llamado

VERSION.

Si lo hago cat VERSION, imprime 3.1, que es la versión NLTK instalada.

samsamara
fuente