2015-02-13 15 views
35

Nella shell script sto verificando se questi pacchetti sono installati o meno, se non installati, installarlo. Così withing script:come verificare quale versione di nltk, scikit è stata installata?

import nltk 
echo nltk.__version__ 

ma ferma script a import linea

in Linux terminale provato a vedere in questo modo:

which nltk 

che dà nulla pensano che è installato.

C'è un altro modo per verificare l'installazione di questo pacchetto nello script di shell, se non installato, installarlo anche.

+3

Perché lo stai facendo con uno script di shell? Perché non lo stai facendo all'interno di un file Python? – Ffisegydd

+0

@Ffisegydd: Ho una regola generalizzata, in cui in shellscript cerco tutti i pacchetti necessari, se qualche pacchetto non esiste, quindi installalo con un altro salto al successivo controllo. Siccome ho bisogno di controllare ed eseguire pochissimi altri script di Python, lo sto usando. Sta usando 'shellscript' per questo è una cattiva idea? – nlper

+0

Sarà molto più facile verificarne l'esistenza usando uno script Python (imo). Potresti sempre chiamare lo script Python da uno script di shell, se lo volessi davvero. Se usi solo la sintassi della shell, dovrai calcolare dove si trova ciascun pacchetto, trovare il pacchetto, quindi analizzare in qualche modo il nome del file per i numeri di versione. – Ffisegydd

risposta

66

import nltk è la sintassi di Python e, come tale, non funziona in uno script di shell.

di testare la versione di nltk e scikit_learn, è possibile scrivere uno script Python ed eseguirlo. Tale script può sembrare

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. 

Tenere presente che non tutti i pacchetti di Python sono garantiti per avere un attributo __version__, quindi per alcuni altri potrebbe non riuscire, ma per NLTK e scikit-learn almeno che funzionerà.

+0

@Ffisgydd: \t grazie, ma non è possibile controllare in shell – nlper

23

Prova questo:

$ python -c "import nltk; print nltk.__version__" 
+0

grazie, ma non è possibile controllare in 'shellscript' – nlper

+4

@nlper, questo è perfettamente il codice' shell'. Non vedo alcun problema con quella risposta. Nota che puoi usare 'var = $ ()' per salvare l'output in una variabile – cel

+2

@cel: scusa, capito. Non ho abbastanza credito per rispedire la risposta:) – nlper

2

È possibile trovare la versione NLTK semplicemente facendo:

In [1]: import nltk 

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

E allo stesso modo per scikit-learn,

In [3]: import sklearn 

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

sto usando qui python3 .

+1

Questo ha funzionato per me su Python 3.5, nltk 3.2.2 su Windows 8 64 bit –

+0

Questo non ha funzionato per me su Python 2.7, nltk 3.2.5 su Ubuntu 16.04 64 bit – abggcv

-1

Nella mia macchina, che è Ubuntu 14.04 con Python 2.7 installato, se vado qui,

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

c'è un file chiamato

VERSION.

Se faccio un cat VERSION stampa 3.1, che è la versione NLTK installata.

2

Per controllare la versione di scikit-learn in script di shell, se è stato installato pip, si può provare questo comando

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

Speranza che aiuta!

2

Si può semplicemente provare

pip3 list 

e che si darebbe una lista come questa

bleach (2.0.0) 
colorama (0.3.9) 
cycler (0.10.0) 
decorator (4.1.2) 
entrypoints (0.2.3) 
enum34 (1.1.6) 
graphviz (0.8) 
html5lib (0.999999999) 
ipykernel (4.6.1) 
ipython (6.1.0) 
ipython-genutils (0.2.0) 
ipywidgets (7.0.0) 
jedi (0.10.2) 
Jinja2 (2.9.6) 
    .......... 
PyYAML (3.12) 
pyzmq (16.0.2) 
qtconsole (4.3.1) 
scikit-learn (0.19.0) <------ 
scipy (0.19.1) 
setuptools (36.4.0) 
simplegeneric (0.8.1) 
    ....... 

È possibile acquisire l'elenco per trovare la versione di tutti i pacchetti installati ...

Problemi correlati