Mai mult
Cum să verificați versiunea de module python?
Tocmai am instalat python module: construct " și "statlib" cu " setuptools
astfel:
# Install setuptools to be able to download the following
sudo apt-get install python-setuptools
# Install statlib for lightweight statistical tools
sudo easy_install statlib
# Install construct for packing/unpacking binary data
sudo easy_install construct
Vreau să fie în măsură să (programatic) verifica versiunile lor. Există un echivalent `python --version pot rula din linia de comandă?
Meu versiunea python este 2.7.3
.
582
21
Am sugerăm să utilizați pip în loc de easy_install. Cu pip, puteți lista toate pachetele instalate și versiunile lor cu
În cele mai multe sisteme linux, puteți țeavă asta `grep "(sau " findstr exe pe Windows) pentru a găsi rând pentru pachetul special de tine're interesat în:
Pentru un anumit modul, puteți încerca
__versiune__
atribut, cu toate acestea, există module fără ea:În cele din urmă, în calitate de comenzi în cauză sunt prefixate cu "sudo", se pare că're instalarea la nivel mondial python mediu. Sfatuim sa ia uită-te în python mediu virtual managerii, de exemplu, virtualenvwrapper
Puteți încerca
Folosesc pkg_resources
module distribuite cu setuptools
biblioteca. Rețineți că șirul deget_distribution
metodă ar trebui să corespundă la PyPI intrare.și dacă vrei să-l rulați de la linia de comandă puteți face:
Rețineți că șirul pe care le trece în get_distribution` metodă ar trebui să fie numele pachetului cum a fost înregistrată în PyPI, nu numele modulului că sunteți încercarea de a importa.
Din păcate, acestea nu sunt't întotdeauna aceeași (de ex. faci
pip instala memcached", ci " de import memcache
).Cred că acest lucru poate ajuta, dar în primul rând instala arată pachet în scopul de a rula pip show apoi, utilizați show pentru a găsi versiunea!
Cel Mai bun mod de a face asta este:
Pentru detalii specifice Pachetului
pip show <nume_pachet>
Pentru mai multe Detalii: `>>> pip ajuta
`pip` ar trebui să fie actualizate pentru a face acest lucru.
Pe Windows se recomanda comanda este:
În python3 cu paranteze în jurul valorii de imprimare
modul.__versiune__
este un bun primul lucru pentru a încerca, dar nu't întotdeauna de lucru.Dacă tu nu't doriți să plăti, și te're folosind pip 8 sau 9, puteți utiliza în continuare
pip.get_installed_distributions()
pentru a obține versiunile din cadrul Python:actualizare: soluția funcționează în pip 8 și 9, dar în pip 10 funcția a fost mutat de la `pip.get_installed_distributions " la " pip._internal.utils.misc.get_installed_distributions să indice în mod explicit, că-l's nu pentru uz extern. L's nu este o idee bună să se bazeze pe ea dacă're folosind pip 10+.
Răspunsurile anterioare nu a rezolvat problema mea, dar acest cod a făcut:
Utilizați
dir()
pentru a afla dacă modulul are o `versiune` atribut la toate.Puteți folosi importlib_metadata` biblioteca pentru acest lucru.
Daca're pe python
<3.8
, instalați în primul rând cu:pip instala importlib_metadata
Deoarece python `3.8 l's incluse în biblioteca standard.Apoi, pentru a verifica un pachet de's version (în acest exemplu
lxml
) run:``
Păstrați în minte că acest lucru funcționează doar pentru pachetele instalate de la PyPI. De asemenea, trebuie să treacă un nume de pachet ca un argument la "version" metodă, mai degrabă decât un nume modul că acest pachet oferă (deși ele're, de obicei, la fel).
Dacă metodele de mai sus nu funcționează, este în valoare de încercarea de a urma în python:
Vezi https://stackoverflow.com/questions/31146153/get-python-tornado-version/31146188
Rețineți,
.versiune
a lucrat pentru mine la câteva altele în afară de tornadă la fel de bine.adăugați mai întâi python, pip la variabilele de mediu. astfel încât să puteți executa comenzi din command prompt. apoi, pur și simplu dau python comandă. apoi importați pachet
--> import de scrapy`
apoi imprimați versiunea numele
-->
print(scrapy.__versiune__)
Acesta va lucra cu siguranta
Presupunând că suntem folosind Jupyter Caiet (dacă se utilizează Terminal, aruncă semne de exclamare):
Unele module nu't au
__versiune__
atribut, deci, cel mai simplu mod este de a verifica în terminal:pip lista
(a se vedea, de asemenea, https://stackoverflow.com/a/56912280/7262247)
Am găsit-o destul de nesigure de a folosi diverse instrumente disponibile (inclusiv cel mai bun `pkg_resources menționat de Jakub Kukul' răspunde), ca cele mai multe dintre ele nu acoperă toate cazurile. De exemplu
Când am nevoie de o modalitate de încredere pentru a obține versiunea de orice ** pachet, modul sau submodul, am terminat de scris getversion. Este destul de simplu de utilizat:
Vezi documentația pentru detalii.
Acest lucru funcționează în Jupyter Notebook-ul pe Windows, de asemenea! Atâta timp cât Jupyter este lansat la o petrecere-compatibil linie de comandă, cum ar fi Git Bash (MingW64), soluțiile date în multe dintre răspunsurile pot fi utilizate în Jupyter Notebook pe sistemele de operare Windows cu un mic tweak.
Am'm care rulează windows 10 Pro cu Python instalat prin intermediul Anaconda, și următoarele cod funcționează atunci când am lansa Jupyter prin Git Bash (dar nu la lansare de la Anaconda prompt).
Tweak: Adăugați un semn de exclamare (
!
) în fațapip
să face!pip
.Pentru a obține o listă de non-standard (pip) module importate în modulul curent:
Rezultatul:
Notă:
Acest cod a fost pus împreună de soluții atât pe această pagină și de la https://stackoverflow.com/questions/4858100/how-to-list-imported-modules
Rapid program in python pentru a lista toate packges (puteți să-l copiați pentru a requirements.txt)
Rezultatul ar arata asa:
În Python versiunea 3.8 există o nou
metadate
modul în importlib pachet, care poate face asta la fel de bine.Aici este un exemplu de documente:
Clădirea de pe Jakub Kukul's a răspunde am găsit o cale mai bună de a rezolva această problemă.
Principala problemă a acestei abordări este că necesită pachetele să fie instalat "convențional" (și care nu include utilizarea
pip instala --user
), sau să fie în sistemul CALEA de la Python inițializare.Pentru a obține în jurul valorii de care te poti folosi pkg_resources.find_distributions(path_to_search)
. Acest fapt căutări pentru distribuții care ar fi import dacă
path_to_search` a fost în sistemul CALEA.Putem itera prin acest generator ca acest lucru:
Acest lucru va reveni un dicționar având module cu chei si versiunea lor ca valoare. Această abordare poate fi extins la mult mai mult decât numărul de versiune.
Datorită Jakub Kukul pentru îndreptat în direcția corectă