[python] 파이썬 모듈의 버전을 확인하는 방법?

난 그냥 파이썬 모듈을 설치 : constructstatlibsetuptools같은 :

# 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

프로그래밍 방식으로 버전을 확인할 수 있기를 원합니다. python --version명령 줄에서 실행할 수 있는 것과 동등한 것이 있습니까?

내 파이썬 버전은 2.7.3입니다.



답변

easy_install 대신 pip를 사용하는 것이 좋습니다 . pip를 사용하면 설치된 모든 패키지와 해당 버전을

pip freeze

대부분의 리눅스 시스템에서 이것을 파이프 grep(또는 findstrWindows)로 파이프 하여 원하는 특정 패키지의 행을 찾을 수 있습니다.

Linux:
$ pip freeze | grep lxml
lxml==2.3

Windows:
c:\> pip freeze | findstr lxml
lxml==2.3

개별 모듈의 경우 __version__attribute를 시도 할 수 있지만없는 모듈이 있습니다.

$ python -c "import requests; print(requests.__version__)"
2.14.2
$ python -c "import lxml; print(lxml.__version__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute '__version__'

마지막으로 질문의 명령 앞에 접두사가 붙으면 sudo전역 파이썬 환경에 설치하는 것처럼 보입니다. python 가상 환경 관리자 (예 : virtualenvwrapper)를 살펴 보는 것이 좋습니다.


답변

당신은 시도 할 수 있습니다

>>> import statlib
>>> print statlib.__version__

>>> import construct
>>> print contruct.__version__


답변

라이브러리 pkg_resources와 함께 배포 된 모듈을 사용하십시오 setuptools. get_distribution메소드에 전달하는 문자열 은 PyPI 항목과 일치해야합니다.

>>> import pkg_resources
>>> pkg_resources.get_distribution("construct").version
'2.5.2'

명령 줄에서 실행하려면 다음을 수행하십시오.

python -c "import pkg_resources; print(pkg_resources.get_distribution('construct').version)"

get_distribution메소드에 전달하는 문자열은 가져 오려는 모듈 이름이 아니라 PyPI에 등록 된 패키지 이름이어야합니다.

불행히도 이것들은 항상 동일하지는 않습니다 (예를 들어 pip install memcached, import memcache).


답변

이것이 도움이 될 수 있지만 먼저 show패키지를 설치 pip show한 다음 show를 사용하여 버전을 찾으십시오!

sudo pip install show
# in order to get package version execute the below command
sudo pip show YOUR_PACKAGE_NAME | grep Version


답변

더 좋은 방법은 다음과 같습니다.


특정 패키지에 대한 자세한 내용

pip show <package_name>

Package_name, Version, Author, Location 등을 자세히 설명합니다.


$ pip show numpy
Name: numpy
Version: 1.13.3
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: NumPy Developers
Author-email: numpy-discussion@python.org
License: BSD
Location: c:\users\prowinjvm\appdata\local\programs\python\python36\lib\site-packages
Requires:

자세한 사항은: >>> pip help


pip 이렇게하려면 업데이트해야합니다.

pip install --upgrade pip

Windows에서 권장되는 명령은 다음과 같습니다.

python -m pip install --upgrade pip


답변

python3에서 인쇄 주위에 괄호가 있음

>>> import celery
>>> print(celery.__version__)
3.1.14


답변

module.__version__ 시도하는 것이 가장 좋은 방법이지만 항상 작동하지는 않습니다.

껍질을 벗기고 싶지 않고 pip 8 또는 9를 사용 pip.get_installed_distributions()하는 경우 에도 Python 내에서 버전을 가져올 수 있습니다.

: 업데이트 솔루션은 여기 핍 8, 9에서 작동하지만, PIP (10)의 기능에서 이동되었습니다 pip.get_installed_distributionspip._internal.utils.misc.get_installed_distributions명시 적으로는 외부 사용을 위해 아니다 나타냅니다. pip 10+를 사용하는 경우 그것에 의존하는 것은 좋지 않습니다.

import pip

pip.get_installed_distributions()  # -> [distribute 0.6.16 (...), ...]

[
    pkg.key + ': ' + pkg.version
    for pkg in pip.get_installed_distributions()
    if pkg.key in ['setuptools', 'statlib', 'construct']
] # -> nicely filtered list of ['setuptools: 3.3', ...]