Làm thế nào để kiểm tra phiên bản nltk, scikit learning đã cài đặt?


102

Trong shell script, tôi đang kiểm tra xem các gói này đã được cài đặt hay chưa, nếu chưa được cài đặt thì hãy cài đặt nó. Vì vậy, tập lệnh shell withing:

import nltk
echo nltk.__version__

nhưng nó dừng tập lệnh shell tại importdòng

trong thiết bị đầu cuối linux đã cố gắng xem theo cách này:

which nltk

mà không có gì cho rằng nó đã được cài đặt.

Có cách nào khác để xác minh cài đặt gói này trong tập lệnh shell không, nếu chưa cài đặt, hãy cài đặt luôn.


3
Tại sao bạn làm điều đó trong một kịch bản shell? Tại sao bạn không làm điều đó bên trong tệp Python?
Ffisegydd

@Ffisegydd: Tôi có một quy tắc tổng quát, trong đó trong shellcript, tôi kiểm tra tất cả các gói cần thiết, nếu bất kỳ gói nào không tồn tại, hãy cài đặt nó, bỏ qua để kiểm tra tiếp theo. Vì tôi cần kiểm tra và thực thi một số python cũng như shellcripts khác, tôi đang sử dụng nó. Sử dụng shellscriptcho điều này là ý tưởng tồi?
nlper

Sẽ dễ dàng hơn nhiều để kiểm tra những tồn tại này bằng cách sử dụng tập lệnh Python (imo). Bạn luôn có thể gọi tập lệnh Python từ một tập lệnh shell, nếu bạn thực sự muốn. Nếu bạn chỉ sử dụng cú pháp shell thì bạn sẽ phải tìm ra vị trí của mỗi gói, tìm gói, sau đó phân tích cú pháp tên tệp của nó cho các số phiên bản bằng cách nào đó.
Ffisegydd 13/02/15

@Ffisegydd: cảm ơn, nhưng trong trường hợp đó tôi phải viết tập lệnh python để xác thực từng gói mà tôi muốn kiểm tra và thực thi tập lệnh đó để xác thực nó. theo những gì tôi hiểu.
nlper

Hay bạn chỉ đặt tất cả chúng trong một tập lệnh?
Ffisegydd

Câu trả lời:


156

import nltk là cú pháp Python, và như vậy sẽ không hoạt động trong tập lệnh shell.

Để kiểm tra phiên bản của nltkscikit_learn, bạn có thể viết một tập lệnh Python và chạy nó. Một kịch bản như vậy có thể trông giống như

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.

Lưu ý rằng không phải tất cả các gói Python đều được đảm bảo có một __version__thuộc tính, vì vậy đối với một số gói khác, nó có thể bị lỗi, nhưng đối với nltk và scikit-learning ít nhất nó sẽ hoạt động.


@Ffisgydd: cảm ơn, nhưng không thể kiểm tra shellcript
nlper 13/02/15

@Ffisegydd Câu trả lời tuyệt vời, nhưng quá phức tạp đối với một nhiệm vụ tầm thường như vậy
agcala

@nlper Đối shellscript: Loại python>>> import sklearnvà sau đó >>> sklearn.__version__và bạn sẽ có được phiên bản in trên vỏ. Tương tự chonltk
Vamshi Pulluri

27

Thử cái này:

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

cảm ơn, nhưng không thể nhận phòngshellscript
nlper 13/02

6
@nlper, đây là shellmã hoàn toàn hợp lệ . Tôi không thấy có vấn đề gì với câu trả lời đó. Lưu ý rằng bạn có thể sử dụng var=$(<some command>)để lưu kết quả đầu ra vào một biến
cel

2
@cel: xin lỗi, hiểu rồi. Không có đủ tín dụng để
ủng hộ

21

Trong hệ thống Windows®, bạn chỉ cần thử

pip3 list | findstr scikit

scikit-learn                  0.22.1

Nếu bạn đang ở trên Anaconda, hãy thử

conda list scikit

scikit-learn              0.22.1           py37h6288b17_0

Và điều này có thể được sử dụng để tìm ra phiên bản của bất kỳ gói nào bạn đã cài đặt. Ví dụ

pip3 list | findstr numpy

numpy                         1.17.4
numpydoc                      0.9.2

Hoặc nếu bạn muốn tìm kiếm nhiều gói cùng một lúc

pip3 list | findstr "scikit numpy"

numpy                         1.17.4
numpydoc                      0.9.2
scikit-learn                  0.22.1

Lưu ý rằng các ký tự trích dẫn được yêu cầu khi tìm kiếm nhiều hơn một từ.

Bảo trọng.


4
THỬ: Danh sách $ pip | grep scikit * - Tại sao phải tìm kiếm lâu khi grep nhanh hơn.
oaxacamatt

@oaxacamatt Tôi không chắc bạn có thể sử dụng grep trong hệ thống Windows.
agcala

7

Để kiểm tra phiên bản scikit-learning trong shell script, nếu bạn đã cài đặt pip, bạn có thể thử lệnh này

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

Hy vọng nó giúp!


Chỉ trên nền tảng Linux. Còn những người còn lại trong chúng ta thì sao :)
agcala

5

Bạn có thể tìm thấy phiên bản NLTK đơn giản bằng cách:

In [1]: import nltk

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

Và tương tự đối với scikit-learning,

In [3]: import sklearn

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

Tôi đang sử dụng python3 ở đây.


1
Điều này làm việc cho tôi trên Python 3.5, NLTK 3.2.2 trên Windows 8 64 bit
Rob Mulder

Điều này đã không làm việc cho tôi trên Python 2.7, NLTK 3.2.5 trên Ubuntu 16.04 64 bit
abggcv

0

bạn có thể kiểm tra từ một ô sổ ghi chép python như sau

!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

Trong máy tính của tôi là ubuntu 14.04 có cài đặt python 2.7, nếu tôi truy cập vào đây,

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

có một tệp được gọi là

VERSION.

Nếu tôi thực hiện, cat VERSIONnó sẽ in 3.1, đó là phiên bản NLTK đã được cài đặt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.