Wie überprüfe ich, welche Version von nltk, scikit learn installiert ist?


102

Im Shell-Skript überprüfe ich, ob diese Pakete installiert sind oder nicht. Wenn sie nicht installiert sind, installieren Sie sie. Also mit Shell-Skript:

import nltk
echo nltk.__version__

aber es stoppt das Shell-Skript in der importZeile

im Linux-Terminal versucht, auf diese Weise zu sehen:

which nltk

das gibt nichts zu denken, dass es installiert ist.

Gibt es eine andere Möglichkeit, diese Paketinstallation im Shell-Skript zu überprüfen? Wenn sie nicht installiert ist, installieren Sie sie auch.


3
Warum machst du das in einem Shell-Skript? Warum machst du das nicht in einer Python-Datei?
Ffisegydd

@Ffisegydd: Ich habe eine verallgemeinerte Regel, bei der ich in Shellscript nach allen benötigten Paketen suche. Wenn kein Paket vorhanden ist, installiere ich es auf andere Weise. Springe zur nächsten Prüfung. Da ich einige andere Python- und Shellskripte überprüfen und ausführen muss, verwende ich sie. Ist die Verwendung shellscriptdafür eine schlechte Idee?
nlper

Es wird viel einfacher sein, diese mit einem Python-Skript (imo) zu testen. Sie können das Python-Skript jederzeit von einem Shell-Skript aus aufrufen, wenn Sie dies wirklich möchten. Wenn Sie nur die Shell-Syntax verwenden, müssen Sie herausfinden, wo sich die einzelnen Pakete befinden, das Paket suchen und dann den Dateinamen für die Versionsnummern analysieren.
Ffisegydd

@Ffisegydd: Danke, aber in diesem Fall muss ich ein Python-Skript schreiben, um jedes Paket zu validieren, das ich überprüfen möchte, und dieses Skript ausführen, um es zu validieren. nach dem was ich verstehe.
nlper

Oder setzen Sie sie einfach alle in ein Skript?
Ffisegydd

Antworten:


156

import nltk ist Python-Syntax und funktioniert daher in einem Shell-Skript nicht.

Um die Version von nltkund zu testen scikit_learn, können Sie ein Python-Skript schreiben und ausführen. Ein solches Skript könnte so aussehen

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.

Beachten Sie, dass nicht alle Python-Pakete garantiert ein __version__Attribut haben, so dass es bei einigen anderen möglicherweise fehlschlägt, aber bei nltk und scikit-learn funktioniert es zumindest.


@Ffisgydd: Danke, aber es ist nicht möglich, in Shellscript einzuchecken
nlper

@Ffisegydd Tolle Antwort, aber zu kompliziert für solch eine triviale Aufgabe
Agcala

@nlper Für Shellscript: Geben Sie pythonund >>> import sklearnund dann ein >>> sklearn.__version__und Sie erhalten die auf Shell gedruckte Version. Gleiches gilt fürnltk
Vamshi Pulluri

27

Versuche dies:

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

danke, aber ist es nicht möglich einzucheckenshellscript
nlper

6
@nlper, dies ist ein vollkommen gültiger shellCode. Ich sehe kein Problem mit dieser Antwort. Beachten Sie, dass Sie verwenden können var=$(<some command>), um die Ausgabe in einer Variablen zu speichern
cel

2
@cel: Entschuldigung, verstanden. Ich habe nicht genug Kredit, um die Antwort zu verbessern :)
nlper

21

In Windows®-Systemen können Sie es einfach versuchen

pip3 list | findstr scikit

scikit-learn                  0.22.1

Wenn Sie auf Anaconda sind, versuchen Sie es

conda list scikit

scikit-learn              0.22.1           py37h6288b17_0

Auf diese Weise können Sie die Version eines von Ihnen installierten Pakets ermitteln . Beispielsweise

pip3 list | findstr numpy

numpy                         1.17.4
numpydoc                      0.9.2

Oder wenn Sie mehr als ein Paket gleichzeitig suchen möchten

pip3 list | findstr "scikit numpy"

numpy                         1.17.4
numpydoc                      0.9.2
scikit-learn                  0.22.1

Beachten Sie, dass bei der Suche nach mehr als einem Wort Anführungszeichen erforderlich sind.

Pass auf.


4
VERSUCH: $ pip list | grep scikit * - Warum lange suchen, wenn grep schneller ist?
Oaxacamatt

@oaxacamatt Ich bin nicht sicher, ob Sie grep in Windows-Systemen verwenden können.
Agcala

7

Wenn Sie pip installiert haben, können Sie diesen Befehl versuchen, um die Version von scikit-learn im Shell-Skript zu überprüfen

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

Ich hoffe es hilft!


Nur auf Linux-Plattform. Was ist mit dem Rest von uns Sterblichen :)
Agcala

5

Sie können die NLTK-Version einfach folgendermaßen finden:

In [1]: import nltk

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

Und ähnlich für Scikit-Learn,

In [3]: import sklearn

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

Ich benutze hier Python3.


1
Dies funktionierte für mich unter Python 3.5, nltk 3.2.2 unter Windows 8 64-Bit
Rob Mulder

Dies funktionierte nicht für mich unter Python 2.7, nltk 3.2.5 unter Ubuntu 16.04 64 Bit
abggcv

0

Sie können wie folgt aus einer Python-Notebook-Zelle überprüfen

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

und

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

-1

In meinem Computer, der Ubuntu 14.04 mit Python 2.7 installiert ist, wenn ich hier gehe,

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

Es gibt eine Datei namens

VERSION.

Wenn ich es mache, wird cat VERSIONes gedruckt 3.1, welches die NLTK-Version installiert ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.