如何检查scikit学习安装了哪个版本的nltk?


102

在shell脚本中,我正在检查是否已安装此软件包,如果未安装,请先安装它。因此,使用shell脚本:

import nltk
echo nltk.__version__

但它会在以下位置停止shell脚本 import在行

在Linux终端中尝试以这种方式查看:

which nltk

没有任何东西以为已安装。

还有没有其他方法可以在shell脚本中验证此软件包的安装,如果未安装,请同时安装。


3
为什么要在Shell脚本中执行此操作?您为什么不在Python文件中执行此操作?
Ffisegydd 2015年

@Ffisegydd:我有一个通用规则,在shellscript中,我检查所有需要的软件包,如果不存在任何软件包,则以其他方式安装它,以跳到下一个检查。由于我需要检查并执行其他一些python以及shellscript,因此我正在使用它。shellscript为此使用是个坏主意吗?
nlper 2015年

使用Python脚本(imo)来测试它们的存在会更加容易。如果确实需要,您总是可以从shell脚本中调用Python脚本。如果仅使用shell语法,则必须找出每个软件包的位置,找到该软件包,然后以某种方式解析其文件名以获取版本号。
Ffisegydd

@Ffisegydd:谢谢,但是在那种情况下,我必须编写python脚本来验证要检查的每个包,并执行该脚本来验证它。根据我的理解。
nlper 2015年

还是只是将它们全部放在一个脚本中?
Ffisegydd

Answers:


157

import nltk 是Python语法,因此无法在Shell脚本中使用。

为了测试的版本nltkscikit_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至少它会起作用。


@Ffisgydd:谢谢,但是无法签入
shellscript

@Ffisegydd很好的答案,但是对于如此琐碎的任务来说太复杂了
Agcala

@nlper对于shellscript:键入python>>> import sklearn然后>>> sklearn.__version__将其打印在shell上。同样适用于nltk
Vamshi Pulluri,

27

试试这个:

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

谢谢,但是不能办理登机手续shellscript
nlper 2015年

6
@nlper,这是完全有效的shell代码。我认为该答案没有任何问题。请注意,您可以var=$(<some command>)用来将输出保存到变量
cel

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

请注意,当搜索多个单词时,必须使用引号字符。

照顾自己。


4
尝试:$点列表| grep scikit *-当grep更快时,为什么要搜索很长的时间。
oaxacamatt

@oaxacamatt我不确定您是否可以在Windows系统中使用grep。
agcala

7

要检查shell脚本中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。


1
这对我来说适用于Windows 8 64位上的Python 3.5,nltk 3.2.2
Rob Mulder

这在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

在我的安装了python 2.7的ubuntu 14.04机器中,如果我去这里,

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

有一个名为

VERSION

如果我这样做,cat VERSION它将打印3.1,这是已安装的NLTK版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.