как проверить, какая версия nltk, scikit learn установлена?

104

В сценарии оболочки я проверяю, установлены ли эти пакеты или нет, если они не установлены, установите их. Итак, в сценарии оболочки:

import nltk
echo nltk.__version__

но он останавливает сценарий оболочки на importстроке

в терминале linux попытался увидеть таким образом:

which nltk

который ничего не дает думать, что он установлен.

Есть ли другой способ проверить установку этого пакета в сценарии оболочки, если он не установлен, также установите его.

нлпер
источник
3
Почему вы делаете это в сценарии оболочки? Почему вы не делаете этого внутри файла Python?
Ffisegydd
@Ffisegydd: у меня есть одно обобщенное правило, где в shellscript я проверяю все необходимые пакеты, если какой-либо пакет не существует, затем устанавливаю его, иначе переходите к следующей проверке. Поскольку мне нужно проверить и выполнить несколько других скриптов Python, а также сценариев оболочки, я использую его. Использование shellscriptдля этого плохая идея?
nlper
Будет намного проще проверить их существование с помощью скрипта Python (imo). Вы всегда можете вызвать сценарий Python из сценария оболочки, если хотите. Если вы просто используете синтаксис оболочки, вам придется выяснить, где находится каждый пакет, найти пакет, а затем как-то разобрать его имя файла на номера версий.
Ffisegydd
@Ffisegydd: спасибо, но в этом случае мне нужно написать скрипт Python для проверки каждого пакета, который я хочу проверить, и выполнить этот скрипт, чтобы проверить его. насколько я понимаю.
nlper
Или вы просто поместили их все в один сценарий?
Ffisegydd

Ответы:

161

import nltk является синтаксисом Python и поэтому не будет работать в сценарии оболочки.

Чтобы протестировать версию nltkи scikit_learn, вы можете написать сценарий Python и запустить его. Такой сценарий может выглядеть как

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.

Обратите внимание, что не все пакеты Python гарантированно имеют __version__атрибут, поэтому для некоторых других он может не работать, но, по крайней мере, для nltk и scikit-learn он будет работать.

Ffisegydd
источник
@Ffisgydd: спасибо, но нельзя ли проверить в shellscript
nlper
@Ffisegydd Отличный ответ, но слишком сложный для такой тривиальной задачи
agcala
@nlper Для сценария оболочки: введите, pythonа >>> import sklearnзатем, >>> sklearn.__version__и вы получите версию, напечатанную на оболочке. То же самое дляnltk
Вамши Пуллури
29

Попробуй это:

$ python -c "import nltk; print nltk.__version__"
Аарон
источник
спасибо, но невозможно ли зарегистрироваться?shellscript
nlper
6
@nlper, это совершенно правильный shellкод. Я не вижу проблем с этим ответом. Обратите внимание, что вы можете использовать var=$(<some command>)для сохранения вывода в переменную
чел
2
@cel: извините, понял. У меня недостаточно кредитов, чтобы проголосовать за ответ
:)
21

В системах Windows® вы можете просто попробовать

pip3 list | findstr scikit

scikit-learn                  0.22.1

Если вы используете Anaconda, попробуйте

conda list scikit

scikit-learn              0.22.1           py37h6288b17_0

И это можно использовать, чтобы узнать версию любого установленного вами пакета . Например

pip3 list | findstr numpy

numpy                         1.17.4
numpydoc                      0.9.2

Или если вы хотите искать более одного пакета за раз

pip3 list | findstr "scikit numpy"

numpy                         1.17.4
numpydoc                      0.9.2
scikit-learn                  0.22.1

Обратите внимание, что кавычки необходимы при поиске более одного слова.

Береги себя.

Agcala
источник
4
ПОПРОБУЙТЕ: список $ pip | grep scikit * - Зачем искать долго, когда grep работает быстрее.
oaxacamatt
@oaxacamatt Я не уверен, что вы можете использовать grep в системах Windows.
agcala
7

Для проверки версии scikit-learn в сценарии оболочки, если у вас установлен pip, вы можете попробовать эту команду

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

Надеюсь, поможет!

прабхат
источник
Только на платформе Linux. А как насчет остальных из нас, смертных :)
агчала
5

Вы можете найти версию NLTK, просто выполнив:

In [1]: import nltk

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

И аналогично для scikit-learn,

In [3]: import sklearn

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

Я использую здесь python3.

kmario23
источник
1
Это сработало для меня на Python 3.5, nltk 3.2.2 на 64-разрядной версии Windows 8
Роб Малдер,
У меня это не сработало на Python 2.7, nltk 3.2.5 на Ubuntu 16.04 64 бит
abggcv
0

вы можете проверить из ячейки ноутбука python следующим образом

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

и

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

На моей машине, которая является Ubuntu 14.04 с установленным python 2.7, если я пойду сюда,

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

есть файл с именем

VERSION.

Если я сделаю cat VERSIONэто 3.1, то это будет установленная версия NLTK.

самсамара
источник