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


102

У скрипті оболонки я перевіряю, встановлені ці пакети чи ні, якщо вони не встановлені, то встановіть його. Тож із скриптом для оболонки:

import nltk
echo nltk.__version__

але він зупиняє скрипт оболонки на importчерзі

в терміналі Linux намагалися бачити таким чином:

which nltk

що нічого не дає думати, що він встановлений.

Чи є інший спосіб перевірити встановлення цього пакету в скрипті оболонки, якщо він не встановлений, також встановіть його.


3
Чому ви це робите в рамках сценарію оболонки? Чому ти не робиш це всередині файлу Python?
Ffisegydd

@Ffisegydd: У мене є одне узагальнене правило, де в оболонці я перевіряю всі необхідні пакети, якщо якогось пакету не існує, то встановіть його іншим розумним переходом до наступної перевірки. Оскільки мені потрібно перевірити і виконати кілька інших пітонів, а також оболонок, я його використовую. Чи використовувати shellscriptдля цього погану ідею?
nlper

Буде набагато простіше перевірити їх існування за допомогою сценарію Python (imo). Ви завжди можете викликати скрипт Python із сценарію оболонки, якщо цього дуже хотіли. Якщо ви просто використовуєте синтаксис оболонки, то вам доведеться розібратися, де розташований кожен пакет, знайдіть пакунок, а потім якось проаналізуйте його ім'я для номерів версій.
Ffisegydd

@Ffisegydd: дякую, але в такому випадку я повинен написати сценарій python для перевірки кожного пакету, я хочу перевірити та виконати цей сценарій, щоб перевірити його. відповідно до того, що я розумію.
nlper

Або ви просто помістили їх в один сценарій?
Ffisegydd

Відповіді:


158

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-навчання принаймні це спрацює.


@Ffisgydd: дякую, але чи не можливо це перевірити в
оболонці

@Ffisegydd Чудова відповідь, але занадто складна для такого тривіального завдання
agcala

@nlper Для оболонки оболонки: Введіть, pythonа >>> import sklearnпотім >>> sklearn.__version__і ви отримаєте версію, надруковану на оболонці. Те саме дляnltk
Vamshi Pulluri

27

Спробуйте це:

$ 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

Якщо ви перебуваєте на Анаконда, спробуйте

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

Зверніть увагу, що символи цитати потрібні під час пошуку кількох слів.

Піклуватися.


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. Як щодо решти нас смертних :)
agcala

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.


1
Це працювало для мене на Python 3.5, nltk 3.2.2 на Windows 8 64 біт
Роб Малдер

Це не спрацювало для мене на Python 2.7, nltk 3.2.5 на Ubuntu 16.04 64 біт
abggcv

0

ви можете перевірити з комірки ноутбука пітон таким чином

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.