2015-02-13 25 views
35

In Shell-Skript überprüfe ich, ob diese Pakete installiert sind oder nicht, wenn nicht installiert, dann installieren Sie es. So withing Shell-Skript:wie überprüft man, welche Version von Nltk, Scikit lernen installiert?

import nltk 
echo nltk.__version__ 

aber es stoppt Shell-Skript an import Linie

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

which nltk 

die nichts gibt dachte, es installiert ist.

Gibt es eine andere Möglichkeit, diese Paketinstallation in Shell-Skript zu überprüfen, wenn nicht installiert, installieren Sie es auch.

+3

Warum machst du es in einem Shell-Skript? Warum machst du es nicht in einer Python-Datei? – Ffisegydd

+0

@Ffisegydd: Ich habe eine verallgemeinerte Regel, wobei ich in Shellscript nach allen benötigten Paketen suche, wenn ein Paket nicht existiert, dann installiere es anders, gehe zur nächsten Überprüfung. Da ich nur wenige andere Python-Shellscriptes überprüfen und ausführen muss, verwende ich sie. Ist 'shellscript' dafür eine schlechte Idee? – nlper

+0

Es wird viel einfacher sein, diese mit einem Python-Skript (imo) zu testen. Sie könnten das Python-Skript immer von einem Shell-Skript aus aufrufen, wenn Sie das wirklich wollen. Wenn Sie nur die Shell-Syntax verwenden, müssen Sie herausfinden, wo sich jedes Paket befindet, das Paket finden und dann den Dateinamen für die Versionsnummern parsen. – Ffisegydd

Antwort

66

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

Um die Version von nltk zu testen und scikit_learn, können Sie ein Python-Skript und führen Sie es schreiben. Ein solches Skript

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. 

Hinweis aussehen kann, dass nicht alle Python-Pakete ein __version__ Attribut haben sind garantiert, so dass für einige andere kann es nicht, aber für nltk und Scikit-Learn zumindest wird es funktionieren.

+0

@Ffisgydd: \t danke, aber ist es nicht möglich, in Shellscript – nlper

23

Try this:

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

Dank, aber ist es nicht möglich zu überprüfen in 'Shellscript' – nlper

+4

@nlper, das ist perfekt gültig' Shell' Code. Ich sehe kein Problem mit dieser Antwort. Beachten Sie, dass Sie 'var = $ ()' verwenden können, um die Ausgabe in einer Variablen zu speichern – cel

+2

@cel: sorry, hab es. Haben nicht genug Kredit zu upvote Antwort:) – nlper

2

Sie können einfach NLTK Version finden, indem Sie:

In [1]: import nltk 

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

Und in ähnlicher Weise für Scikit-Learn,

In [3]: import sklearn 

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

Ich verwende python3 hier .

+1

Dies funktionierte für mich auf Python 3.5, nltk 3.2.2 auf Windows 8 64 Bit –

+0

Dies hat nicht funktioniert für mich auf Python 2.7, nltk 3.2.5 auf Ubuntu 16.04 64 Bit – abggcv

-1

In meiner Maschine, die Ubuntu 14.04 mit Python ist 2.7 installiert, wenn ich hier gehen,

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

gibt es eine Datei namens

VERSION.

Wenn ich eine cat VERSION mache, druckt es 3.1, das ist die NLTK-Version installiert.

2

Für die Version von Scikit-Learn in Shell-Skript überprüft, wenn Sie pip installiert haben, können Sie versuchen, diesen Befehl

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

Hoffe, es hilft!

2

können Sie versuchen einfach

pip3 list 

und dass Sie diese

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) 
    ....... 

eine Liste würden Sie die Liste scannen können die Version aller installierten Pakete zu finden ...

Verwandte Themen