【问题标题】:how to check which version of nltk, scikit learn installed?如何查看安装了哪个版本的nltk、scikit learn?
【发布时间】:2015-04-14 13:57:55
【问题描述】:

在 shell 脚本中,我正在检查是否安装了此软件包,如果未安装则安装它。所以使用 shell 脚本:

import nltk
echo nltk.__version__

但它会在 import 行停止 shell 脚本

在linux终端尝试用这种方式查看:

which nltk

这并没有让人觉得它已经安装了。

有没有其他方法可以在shell脚本中验证这个包安装,如果没有安装,也安装它。

【问题讨论】:

  • 为什么要在 shell 脚本中执行此操作?为什么不在 Python 文件中做呢?
  • @Ffisegydd:我有一个通用规则,在 shellscript 我检查所有需要的包,如果任何包不存在,则安装它,否则跳到下一个检查。由于我需要检查和执行一些其他 python 以及 shellscript,我正在使用它。使用shellscript 是个坏主意吗?
  • 使用 Python 脚本 (imo) 测试这些存在会容易得多。如果你真的想的话,你总是可以从 shell 脚本中调用 Python 脚本。如果你只是使用 shell 语法,那么你将不得不找出每个包的位置,找到包,然后以某种方式解析它的文件名以获取版本号。
  • @Ffisegydd:谢谢,但在这种情况下,我必须编写 python 脚本来验证我想要检查的每个包并执行该脚本来验证它。据我了解。
  • 或者你只是把它们都放在一个脚本里?

标签: python linux shell scikit-learn nltk


【解决方案1】:

不要在下面的代码中使用presort='deprecated',它可以工作。

DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='entropy',
                       max_depth=15, max_features=None, max_leaf_nodes=None,
                       min_impurity_decrease=0.0, min_impurity_split=None,
                       min_samples_leaf=25, min_samples_split=25,
                       min_weight_fraction_leaf=0.0, presort='deprecated',
                       random_state=None, splitter='best')

检查版本:

>>> import sklearn
>>> print('The scikit-learn version is {}.'.format(sklearn.__version__))
The scikit-learn version is 0.24.1.

【讨论】:

    【解决方案2】:

    我需要做完全相同的事情,并且我发现了迄今为止提出的最快的解决方案。重要提示:我安装了 Anaconda。

    在终端中,输入:

    python3
    

    然后:

    import nltk
    

    还有:

    nltk.__version__
    

    我看到的输出:

    '3.5'

    【讨论】:

      【解决方案3】:

      在 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
      

      请注意,搜索多个单词时需要引号字符。

      保重。

      【讨论】:

      • TRY: $ pip list | grep scikit* - 当 grep 更快时,为什么要搜索很长时间。
      • @oaxacamatt 我不确定你是否可以在 Windows 系统中使用 grep。
      • 不,它没有,但它确实为基于 Linux 的系统提供了解决方案。
      【解决方案4】:

      您可以从 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__))
      

      【讨论】:

        【解决方案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。

        【讨论】:

        • 这在 Python 3.5 上对我有用,在 Windows 8 64 位上适用于 nltk 3.2.2
        • 这在 Python 2.7 上对我不起作用,在 Ubuntu 16.04 64 位上的 nltk 3.2.5 对我不起作用
        【解决方案6】:

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

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

        有个文件叫

        VERSION.

        如果我执行cat VERSION,它会打印3.1,这是安装的NLTK 版本。

        【讨论】:

          【解决方案7】:

          为了在shell脚本中查看scikit-learn的版本,如果你安装了pip,你可以试试这个命令

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

          希望对你有帮助!

          【讨论】:

          • 仅在 Linux 平台上。我们这些凡人呢:)
          【解决方案8】:

          试试这个:

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

          【讨论】:

          • 谢谢,但是不能签到shellscript
          • @nlper,这是完全有效的shell 代码。我认为这个答案没有任何问题。请注意,您可以使用var=$(<some command>) 将输出保存到变量
          【解决方案9】:

          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
          • @nlper 对于 shellscript:输入 python>>> import sklearn,然后输入 >>> sklearn.__version__,你会得到打印在 shell 上的版本。 nltk 相同
          猜你喜欢
          • 1970-01-01
          • 2016-06-02
          • 2020-05-15
          • 2021-05-06
          • 1970-01-01
          • 2018-02-15
          • 1970-01-01
          • 1970-01-01
          • 2018-06-10
          相关资源
          最近更新 更多