จะตรวจสอบรุ่นของ nltk, scikit learn ที่ติดตั้งได้อย่างไร?


105

ในเชลล์สคริปต์ฉันกำลังตรวจสอบว่ามีการติดตั้งแพ็กเกจนี้หรือไม่หากไม่ได้ติดตั้งให้ติดตั้ง ดังนั้นด้วยเชลล์สคริปต์:

import nltk
echo nltk.__version__

แต่จะหยุดเชลล์สคริปต์ที่importบรรทัด

ในลินุกซ์เทอร์มินัลพยายามดูในลักษณะนี้:

which nltk

ซึ่งไม่คิดว่ามีการติดตั้ง

มีวิธีอื่นในการตรวจสอบการติดตั้งแพ็กเกจนี้ในเชลล์สคริปต์หรือไม่หากไม่ได้ติดตั้งให้ติดตั้งด้วย


3
เหตุใดคุณจึงทำภายในเชลล์สคริปต์ ทำไมคุณไม่ทำมันในไฟล์ Python?
Ffisegydd

@Ffisegydd: ฉันมีกฎทั่วไปหนึ่งข้อโดยที่ใน shellscript ฉันตรวจสอบแพ็คเกจที่ต้องการทั้งหมดหากไม่มีแพ็คเกจใด ๆ ให้ติดตั้งอย่างชาญฉลาดข้ามไปที่การตรวจสอบถัดไป เนื่องจากฉันต้องการตรวจสอบและเรียกใช้งาน python อื่น ๆ รวมทั้งเชลล์สคริปต์ฉันกำลังใช้ การใช้shellscriptสำหรับสิ่งนี้เป็นความคิดที่ไม่ดีหรือไม่?
nlper

จะง่ายกว่ามากในการทดสอบสิ่งเหล่านี้โดยใช้สคริปต์ Python (imo) คุณสามารถเรียกสคริปต์ Python จากเชลล์สคริปต์ได้ตลอดเวลาหากคุณต้องการจริงๆ หากคุณใช้ไวยากรณ์ของเชลล์คุณจะต้องค้นหาว่าแต่ละแพ็กเกจอยู่ที่ใดค้นหาแพ็กเกจจากนั้นแยกวิเคราะห์ชื่อไฟล์สำหรับหมายเลขเวอร์ชัน
Ffisegydd

@Ffisegydd: ขอบคุณ แต่ในกรณีนั้นฉันต้องเขียนสคริปต์ python เพื่อตรวจสอบความถูกต้องของแต่ละแพ็คเกจฉันต้องการตรวจสอบและเรียกใช้สคริปต์นั้นเพื่อตรวจสอบความถูกต้อง ตามสิ่งที่ฉันเข้าใจ
nlper

หรือคุณใส่ทั้งหมดไว้ในสคริปต์เดียว?
Ffisegydd

คำตอบ:


164

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 อย่างน้อยก็จะทำงาน


@Ffisgydd: ขอบคุณ แต่มันเป็นไปไม่ได้ที่จะตรวจสอบใน shellscript
nlper

@Ffisegydd คำตอบที่ดี แต่ซับซ้อนเกินไปสำหรับงานเล็กน้อยเช่นนี้
agcala

@nlper สำหรับ shellscript: ประเภทpythonและ>>> import sklearnแล้ว>>> sklearn.__version__และคุณได้รับรุ่นที่พิมพ์บนเปลือก เหมือนกันสำหรับnltk
Vamshi Pulluri

29

ลองสิ่งนี้:

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

ขอบคุณ แต่มันเป็นไปไม่ได้ที่จะเช็คอินshellscript
nlper

6
@nlper นี่คือshellรหัสที่ถูกต้องอย่างสมบูรณ์ ฉันไม่เห็นปัญหาใด ๆ กับคำตอบนั้น โปรดทราบว่าคุณสามารถใช้var=$(<some command>)บันทึกผลลัพธ์เป็นตัวแปรได้
cel

2
@cel: ขอโทษเข้าใจแล้ว ไม่มีเครดิตเพียงพอที่จะ
โหวต

22

ในระบบ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

หมายเหตุจำเป็นต้องมีอักขระเครื่องหมายคำพูดเมื่อค้นหามากกว่าหนึ่งคำ

ดูแล.


5
ลอง: รายการ $ pip | grep scikit * - ทำไมต้องค้นหาในระยะยาวเมื่อ grep เร็วกว่า
oaxacamatt

1
@oaxacamatt ฉันไม่แน่ใจว่าคุณสามารถใช้ grep ในระบบ Windows ได้
agcala

ไม่มันไม่มี แต่มันมีโซลูชันสำหรับระบบที่ใช้ Linux
Sergio Lucero

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 ที่นี่


1
สิ่งนี้ใช้ได้กับฉันใน Python 3.5, nltk 3.2.2 บน Windows 8 64 บิต
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

ในเครื่องของฉันซึ่งเป็น ubuntu 14.04 ที่ติดตั้ง python 2.7 ถ้าฉันไปที่นี่

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

มีไฟล์ชื่อ

VERSION.

หากฉันcat VERSIONพิมพ์ออก3.1มาซึ่งเป็นเวอร์ชัน NLTK ที่ติดตั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.