jak sprawdzić, która wersja nltk, scikit learn jest zainstalowana?

102

W skrypcie powłoki sprawdzam, czy te pakiety są zainstalowane, czy nie, jeśli nie są zainstalowane, instaluję je. Więc za pomocą skryptu powłoki:

import nltk
echo nltk.__version__

ale zatrzymuje skrypt powłoki na importlinii

w terminalu linux próbował zobaczyć w ten sposób:

which nltk

co nic nie daje myśli, że jest zainstalowany.

Czy istnieje inny sposób sprawdzenia instalacji tego pakietu w skrypcie powłoki, jeśli nie jest zainstalowany, również go zainstaluj.

nlper
źródło
3
Dlaczego robisz to w skrypcie powłoki? Dlaczego nie robisz tego w pliku Pythona?
Ffisegydd
@Ffisegydd: Mam jedną uogólnioną regułę, w której w shellscript sprawdzam wszystkie potrzebne pakiety, jeśli jakiś pakiet nie istnieje, a następnie instaluję go w inny sposób, przejdź do następnego sprawdzenia. Ponieważ muszę sprawdzić i wykonać kilka innych skryptów Pythona, a także skryptów powłoki, używam go. Czy używanie shellscriptdo tego jest złym pomysłem?
nlper
Znacznie łatwiej będzie przetestować je za pomocą skryptu Python (imo). Zawsze możesz wywołać skrypt Pythona ze skryptu powłoki, jeśli naprawdę chcesz. Jeśli używasz po prostu składni powłoki, będziesz musiał ustalić, gdzie znajduje się każdy pakiet, znaleźć pakiet, a następnie jakoś przeanalizować jego nazwę pliku w celu znalezienia numerów wersji.
Ffisegydd
@Ffisegydd: dzięki, ale w takim przypadku muszę napisać skrypt w języku Python, aby zweryfikować każdy pakiet, który chcę sprawdzić, i wykonać ten skrypt, aby go sprawdzić. zgodnie z tym, co rozumiem.
nlper
A może po prostu umieścisz je wszystkie w jednym scenariuszu?
Ffisegydd

Odpowiedzi:

158

import nltk to składnia Pythona i jako taka nie będzie działać w skrypcie powłoki.

Aby przetestować wersję nltki scikit_learn, możesz napisać skrypt w języku Python i go uruchomić. Taki skrypt może wyglądać

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.

Zauważ, że nie wszystkie pakiety Pythona mają gwarantowane __version__atrybuty, więc w przypadku niektórych innych może się to nie udać, ale przynajmniej w przypadku nltk i scikit-learn będzie działać.

Ffisegydd
źródło
@Ffisgydd: dzięki, ale czy nie można sprawdzić w
shellscript
@Ffisegydd Świetna odpowiedź, ale zbyt skomplikowana na tak trywialne zadanie
agcala
@nlper Dla shellscript: wpisz pythona, >>> import sklearna >>> sklearn.__version__otrzymasz wersję wydrukowaną na powłoce. To samo dotyczynltk
Vamshi Pulluri
27

Spróbuj tego:

$ python -c "import nltk; print nltk.__version__"
Aaron
źródło
dzięki, ale czy nie można się zameldowaćshellscript
nlper
6
@nlper, to jest całkowicie prawidłowy shellkod. Nie widzę problemu z tą odpowiedzią. Zauważ, że możesz użyć var=$(<some command>)do zapisania wyniku w zmiennej
cel
2
@cel: przepraszam, rozumiem. Nie mam wystarczającego kredytu, aby zagłosować za odpowiedzią
:)
21

W systemach Windows® możesz po prostu spróbować

pip3 list | findstr scikit

scikit-learn                  0.22.1

Jeśli jesteś na Anaconda, spróbuj

conda list scikit

scikit-learn              0.22.1           py37h6288b17_0

Można to wykorzystać do znalezienia wersji dowolnego zainstalowanego pakietu . Na przykład

pip3 list | findstr numpy

numpy                         1.17.4
numpydoc                      0.9.2

Lub jeśli chcesz wyszukać więcej niż jedną paczkę naraz

pip3 list | findstr "scikit numpy"

numpy                         1.17.4
numpydoc                      0.9.2
scikit-learn                  0.22.1

Zwróć uwagę, że znaki cudzysłowu są wymagane przy wyszukiwaniu więcej niż jednego słowa.

Dbać.

agcala
źródło
4
TRY: $ pip lista | grep scikit * - Po co przeszukiwać długą długość, skoro grep jest szybszy.
oaxacamatt
@oaxacamatt Nie jestem pewien, czy możesz używać grep w systemach Windows.
agcala
7

Aby sprawdzić wersję scikit-learn w skrypcie powłoki, jeśli masz zainstalowany pip, możesz wypróbować to polecenie

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

Mam nadzieję, że to pomoże!

prabhat
źródło
Tylko na platformie Linux. A co z resztą z nas, śmiertelników :)
agcala
5

Możesz znaleźć wersję NLTK, wykonując po prostu:

In [1]: import nltk

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

Podobnie w przypadku scikit-learn,

In [3]: import sklearn

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

Używam tutaj python3.

kmario23
źródło
1
To zadziałało dla mnie na Pythonie 3.5, nltk 3.2.2 w systemie Windows 8 w wersji 64-bitowej
Rob Mulder
To nie zadziałało dla mnie w Pythonie 2.7, nltk 3.2.5 na Ubuntu 16.04 64 bit
abggcv
0

możesz sprawdzić z komórki notebooka Pythona w następujący sposób

!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__))

i

#!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
źródło
-1

Na moim komputerze, którym jest Ubuntu 14.04 z zainstalowanym Pythonem 2.7, jeśli przejdę tutaj,

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

istnieje plik o nazwie

VERSION.

Jeśli zrobię cat VERSIONto drukuje 3.1, czyli jest zainstalowana wersja NLTK.

samsamara
źródło