Python 모듈의 버전을 확인하려면 어떻게 해야 하나요?
Python을 했습니다.construct ★★★★★★★★★★★★★★★★★」statlib를 사용합니다.setuptools:
sudo apt-get install python-setuptools
sudo easy_install statlib
sudo easy_install construct
명령줄에서 버전을 확인하려면 어떻게 해야 합니까?
pip을 사용하여 설치된 모든 패키지와 해당 버전을 다음 방법으로 나열합니다.
pip freeze
시스템에서는 를 Linux에 파이프로 할 수 .grep (오류)findstr원하는 특정 패키지에 대한 행을 찾으려면 을 클릭하십시오.
Linux:
pip freeze | grep lxml
lxml==2.3
Windows:
pip freeze | findstr lxml
lxml==2.3
모듈별로 Atribute를 시험할 수 있습니다.단, 이 기능이 없는 모듈이 있습니다.
python -c "import requests; print(requests.__version__)"
2.14.2
python -c "import lxml; print(lxml.__version__)"
트최최최 ( 최최최최최최최최 ) :
< <module> <string> 의 행
AttributeError: 'module' 개체에 'version' 특성이 없습니다.
에는 '어느 정도'가 .sudo글로벌 python 환경에 설치하고 있는 것 같습니다.Python 가상 환경 매니저(예: virtualenvwrapper)를 검토하는 것이 좋습니다.
시도해 보세요
>>> import statlib
>>> print statlib.__version__
>>> import construct
>>> print contruct.__version__
이는 PEP 396이 권장하는 접근법입니다.하지만 그 PEP는 받아들여지지 않았고 연기되었다.사실, Python의 핵심 개발자들 사이에서 Python을 포함하지 말 것을 권장하는 지원이 증가하고 있는 것으로 보입니다.__version__예를 들어 importlib_metadata 제거에서 속성을 지정합니다.버전..
Python > = 3.8:
Python > = 3.8을 사용하는 경우 내장 라이브러리의 모듈을 사용할 수 있습니다.이 예에서는 「」를 해 주세요).construct를 실행합니다.
>>> from importlib.metadata import version
>>> version('construct')
'4.3.1'
Python < 3 . 8 :
라이브러리와 함께 배포된 모듈을 사용합니다.전달되는 문자열은get_distributionPyPI를 사용하다
>>> import pkg_resources
>>> pkg_resources.get_distribution('construct').version
'2.5.2'
사이드 노트:
해 주세요.
get_distributionmethod는 Import하려는 모듈 이름이 아니라 PyPI에 등록된 패키지 이름입니다.유감스럽게도 항상 같은 것은 아닙니다(예:pip install memcachedimport memcache를 참조해 주세요.명령줄에서 이 솔루션을 적용하는 경우 다음과 같은 작업을 수행할 수 있습니다.
python -c \
"import pkg_resources; print(pkg_resources.get_distribution('construct').version)"
pip show!!을!!!!!!!!!!!
# In order to get the package version, execute the below command
pip show YOUR_PACKAGE_NAME | grep Version
하시면 됩니다.pip show YOUR_PACKAGE_NAME 패키지에 세부 합니다. - 세부 정보를 제공합니다.에에에에에에에에에에에에에에
grep Version는 Linux에서 버전을 필터링하여 표시하는 데 사용됩니다.
이를 위한 더 좋은 방법은 다음과 같습니다.
특정 패키지의 상세 정보
pip show <package_name>
package_name, 버전, 작성자, 장소 등에 대해 자세히 설명합니다.
$ 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
Python 3의 경우 인쇄 주위에 괄호가 있는 경우:
>>> import celery
>>> print(celery.__version__)
3.1.14
module.__version__첫 번째 시도는 좋지만 항상 효과가 있는 것은 아닙니다.
9를 8을 사용할 수.pip.get_installed_distributions()Python:
이 pip 8에서 9로 되었습니다.pip.get_installed_distributions로로 합니다.pip._internal.utils.misc.get_installed_distributions외부용도가 아님을 명확하게 나타내기 위해서입니다. 10pip 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', ...]
이전 답변으로는 문제가 해결되지 않았지만 이 코드는 해결되었습니다.
import sys
for name, module in sorted(sys.modules.items()):
if hasattr(module, '__version__'):
print name, module.__version__
모듈에 속성이 있는지 여부를 확인하기 위해 사용합니다.
>>> import selenium
>>> dir(selenium)
['__builtins__', '__doc__', '__file__', '__name__',
'__package__', '__path__', '__version__']
>>> selenium.__version__
'3.141.0'
>>> selenium.__path__
['/venv/local/lib/python2.7/site-packages/selenium']
다음과 같이 시험해 보십시오.
pip list
그러면 모든 패키지가 해당 버전과 함께 출력됩니다.
Python 3.8 버전에서는 에 새로운 모듈이 있습니다.importlib패키지도 가능합니다.
다음으로 문서의 예를 제시하겠습니다.
>>> from importlib.metadata import version
>>> version('requests')
'2.22.0'
모듈에는 모듈도 .__version__Atribute를 가장 입니다.pip list
이전 답변의 메서드가 작동하지 않는 경우 Python에서 다음을 시도해 볼 필요가 있습니다.
import modulename
modulename.version
modulename.version_info
Python Tornoid 버전 가져오기를 참조하십시오.
.version토네이도 말고도 몇 가지 다른 작업도 같이 했어요.
실행 파일 " " " "python ★★★★★★★★★★★★★★★★★」pip환경변수로 이동합니다.명령 프롬프트에서 명령을 실행할 수 있습니다.파이썬
그런 다음 패키지를 가져옵니다.
import scrapy
그런 다음 버전 이름을 인쇄합니다.
print(scrapy.__version__)
이건 분명 효과가 있을 거야.
Jupyter 노트북을 사용하고 있다고 가정합니다(단말기를 사용하는 경우 느낌표를 삭제하십시오).
패키지(예: xgboost)가 pip과 함께 설치된 경우:
!pip show xgboost !pip freeze | grep xgboost !pip list | grep xgboost패키지(예: 카페)가 Conda와 함께 설치된 경우:
!conda list caffe
), Python 쉘을 것을 합니다.__version__여하하다
>>> import statlib
>>> statlib.__version__
>>> import construct
>>> contruct.__version__
주 1: Python 버전을 고려해야 합니다.다른 버전의 Python을 설치한 경우 관심 있는 Python 버전으로 단말기를 열어야 합니다.예를 들어, Python 3.8로 단말기를 열면 Python 3.5나 Python 2.7로 여는 것과는 다른 버전의 라이브러리를 제공할 수 있습니다.
주의 2: Python 2 또는 Python 3에 따라 동작이 다르기 때문에 이 함수는 사용하지 않습니다.필요없고 단말기에 표현값이 표시됩니다.
이 답변은 Windows 사용자를 위한 것입니다.다른 모든 답변에서 제시된 바와 같이 다음 문장을 사용할 수 있습니다.
import [type the module name]
print(module.__version__) # module + '.' + double underscore + version + double underscore
다만, 상기의 방법을 사용해도 버전을 인쇄하지 않는 모듈이 있습니다.다음과 같이 간단하게 할 수 있습니다.
- 명령 프롬프트를 엽니다.
- Python과 모든 지원 모듈이 설치된 cd(파일 주소)를 사용하여 파일 주소/디렉토리로 이동합니다.시스템에 Python 인터프리터가 하나만 있는 경우 일반적으로 PyPI 패키지는 디렉토리/폴더에 표시됩니다.Python → Lib → 사이트 기반입니다.
- 명령어 "syslog install [syslog name]"을 사용하여 를 누릅니다.
- "Requirement already completed: file address\folder name (with version)" 라는 메시지가 나타납니다.
- 다음의 스크린샷을 참조해 주세요.저는 "Selenium-Screenshot"이라는 이름의 프리 인스톨된 모듈의 버전을 알아야 했습니다.1.5.0으로 올바르게 표시되었습니다.
요약:
conda list
(모든 라이브러리와 버전 세부 정보가 제공됩니다.)
그리고:
pip show tensorflow
(라이브러리의 상세한 것에 대하여는, 이쪽을 참조해 주세요).
(Python에 설치된 모듈의 버전을 프로그래밍 방식으로 가져오려면 어떻게 해야 합니까?를 참조하십시오.)
는 사용 한 다양한 도구 포함)를하는 것은 할 수 없다는 것을 .pkg_resourcesJakub Kukul의 답변에 의해 언급됨)은 대부분 모든 사례를 다루지 않기 때문이다.예를들면
- 내장 모듈
- 모듈이 설치되어 있지 않고 python 경로에만 추가됩니다(예: IDE에 의해).
- 동일한 모듈의 두 가지 버전을 사용할 수 있습니다(설치된 모듈을 대체하는 python 경로에 있는 모듈).
패키지, 모듈, 서브모듈의 버전을 입수할 수 있는 신뢰성 높은 방법이 필요했기 때문에 getversion을 작성하게 되었습니다.사용법은 매우 간단합니다.
from getversion import get_module_version
import foo
version, details = get_module_version(foo)
상세한 것에 대하여는, 메뉴얼을 참조해 주세요.
Windows의 Jupyter 노트북에서도 사용할 수 있습니다.Git Bash(Mingw-w64)와 같은 Bash 준거 명령줄에서 Jupyter를 기동하는 한, 많은 답변에 제시된 솔루션은 Windows 시스템의 Jupyter Notebook에서 작은 수정만으로 사용할 수 있습니다.
Anaconda를 통해 Python을 설치한 Windows 10 Pro를 실행하고 있는데, Git Bash를 통해 Jupyter를 실행할 때는 다음 코드가 작동합니다(Anaconda 프롬프트에서 실행할 때는 동작하지 않습니다).
느낌표 추가(!)! ).pip을 가능하게 하다!pip.
>>>!pip show lxml | grep Version
Version: 4.1.0
>>>!pip freeze | grep lxml
lxml==4.1.0
>>>!pip list | grep lxml
lxml 4.1.0
>>>!pip show lxml
Name: lxml
Version: 4.1.0
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: http://lxml.de/
Author: lxml dev team
Author-email: lxml-dev@lxml.de
License: BSD
Location: c:\users\karls\anaconda2\lib\site-packages
Requires:
Required-by: jupyter-contrib-nbextensions
모든 패키지를 나열하는 Python 프로그램(파일 요구 사항에 복사할 수 있습니다).txt):
from pip._internal.utils.misc import get_installed_distributions
print_log = ''
for module in sorted(get_installed_distributions(), key=lambda x: x.key):
print_log += module.key + '~=' + module.version + '\n'
print(print_log)
출력은 다음과 같습니다.
asn1crypto~=0.24.0
attrs~=18.2.0
automat~=0.7.0
beautifulsoup4~=4.7.1
botocore~=1.12.98
한 후하는 방법( " "는")을 확인하려고 합니다.python_is_horrible.__version__Python 는 Python 는 Python 2는 Python으로 은 Python 2는 Python으로 Python은 Python 는 Python으로 Python 2는 Python 2는 Python2는 Python내 시나리오에 맞는 답이 하나도 없었어
그리고 나서 나는 잠시 생각해보고 기본을 깨달았다.30분 동안 실패하면...
는 모듈이 이미 설치되어 Import가 가능하다고 가정합니다.
파이썬 3.7
>>> import sys,sqlite3
>>> sys.modules.get("sqlite3").version
'2.6.0'
>>> ".".join(str(x) for x in sys.version_info[:3])
'3.7.2'
파이썬 2.7
>>> import sys,sqlite3
>>> sys.modules.get("sqlite3").version
'2.6.0'
>>> ".".join(str(x) for x in sys.version_info[:3])
'2.7.11'
말 그대로 그거야...
pycharm-terminal처럼 터미널로 이동
이렇게 쓰세요.py ★★★★★★★★★★★★★★★★★」pythonEnter 키를 누릅니다.
이제 단말기의 python 내부에 들어가 다음과 같이 시도할 수 있습니다.
# import <name_of_the_library>
import kivy
# So if the library has __version__ magic method, so this way will help you
kivy.__version__ # then hit Enter to see the version
# Output >> '2.1.0'
그러나 위의 방법이 효과가 없다면 라이브러리의 버전을 포함한 정보를 알 수 있는 방법을 시도해 볼 수 있습니다.
pip show module <HERE PUT THE NAME OF THE LIBRARY>
예:
pip show module pyperclip
Output:
Name: pyperclip
Version: 1.8.2
Summary: A cross-platform clipboard module for Python. (Only handles plain text for now.)
Home-page: https://github.com/asweigart/pyperclip
Author: Al Sweigart
Author-email: al@inventwithpython.com
License: BSD
Location: c:\c\kivymd\virt\lib\site-packages
Requires:
Required-by:
프로젝트 내의 모든 라이브러리 및 라이브러리 버전을 표시하는 데 도움이 되는 다른 방법이 있습니다.
pip freeze
# I used the above command in a terminal inside my project this is the output
certifi==2021.10.8
charset-normalizer==2.0.12
docutils==0.18.1
idna==3.3
Kivy==2.1.0
kivy-deps.angle==0.3.2
kivy-deps.glew==0.3.1
kivy-deps.sdl2==0.4.5
Kivy-Garden==0.1.5
kivymd @ file:///C:/c/kivymd/KivyMD
Pillow==9.1.0
Pygments==2.12.0
pyperclip==1.8.2
pypiwin32==223
pywin32==303
requests==2.27.1
urllib3==1.26.9
다음 명령을 사용하여 모든 라이브러리와 해당 버전을 표시할 수 있습니다.
pip list
누구나 도울 수 있기를 바랍니다, 인사드립니다.
현재 모듈에 Import된 비표준(PIP) 모듈 목록을 가져오려면 다음 절차를 수행합니다.
[{pkg.key : pkg.version} for pkg in pip.get_installed_distributions()
if pkg.key in set(sys.modules) & set(globals())]
결과:
>>> import sys, pip, nltk, bs4
>>> [{pkg.key : pkg.version} for pkg in pip.get_installed_distributions() if pkg.key in set(sys.modules) & set(globals())]
[{'pip': '9.0.1'}, {'nltk': '3.2.1'}, {'bs4': '0.0.1'}]
주의:
이 코드는 이 페이지의 솔루션과 Import된 모듈을 나열하는 방법 양쪽에서 조합한 것입니다.
필드가 다음과 같은 경우__version__정의되어 있지 않습니다.
try:
from importlib import metadata
except ImportError:
import importlib_metadata as metadata # python<=3.7
metadata.version("package")
또는 이미 언급했듯이:
import pkg_resources
pkg_resources.get_distribution('package').version
여기 Python 환경에서 패키지 버전을 가져올 수 있는 작은 Bash 프로그램이 있습니다.을 당신의 사복 your 에 복사해 주세요./usr/bin실행 가능한 권한을 부여합니다.
#!/bin/bash
packageName=$1
python -c "import ${packageName} as package; print(package.__version__)"
그냥 '에서 하면 됩니다.py-check-version:
py-check-version whatever_package
, 생산 수 없을 로 굳어져 는, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 」, 「 에는 .pip 않다conda의 、 [ Bash ]의 pip freeze:
ls /usr/local/lib/python3.8/dist-packages | grep info | awk -F "-" '{print $1"=="$2}' | sed 's/.dist//g'
( ( )를.dist-packages폴더는 현재 python 버전으로 변경되며 이름이 일관되지 않은 경우(예: 밑줄과 대시)
샘플 인쇄물:
Flask==1.1.2
Flask_Caching==1.10.1
gunicorn==20.1.0
[..]
Jakub Kukul의 답변을 바탕으로 나는 이 문제를 해결할 수 있는 더 확실한 방법을 찾았다.
는, 가 「로 인스톨 것(「종래」의 사용은 되지 않습니다.pip install --userPATH PATH의 PATH의 PATH의 PATH의 PATH의 PATH의 PATH의 PATH의 PATH의 PATH.
을 요.pkg_resources.find_distributions(path_to_search)path_to_searchPATH를 사용하다
이 발전기를 통해 다음과 같이 반복할 수 있습니다.
avail_modules = {}
distros = pkg_resources.find_distributions(path_to_search)
for d in distros:
avail_modules[d.key] = d.version
모듈을 키로 하고 해당 버전을 값으로 하는 사전을 반환합니다.이 접근방식은 버전 번호 이상으로 확장할 수 있습니다.
Jakub Kukul이 방향을 잘 잡아줘서 고마워요.
저 자신도 매우 제한된 서버 환경에서 일하고 있습니다만, 유감스럽게도 여기 있는 솔루션 중 어느 것도 저에게 맞는 것이 없습니다.모든 것을 만족시키는 글로벌 솔루션은 없을지도 모르지만 스크립트 내의 pip freeze 터미널 출력을 읽고 모듈 라벨과 버전을 사전에 저장함으로써 신속한 회피책을 찾을 수 있었습니다.
import os
os.system('pip freeze > tmpoutput')
with open('tmpoutput', 'r') as f:
modules_version = f.read()
module_dict = {item.split("==")[0]:item.split("==")[-1] for item in modules_versions.split("\n")}
모듈 라벨 키를 넘겨 모듈의 버전을 가져옵니다.다음은 예를 제시하겠습니다.
>> module_dict["seaborn"]
'0.9.0'
먼저 다음과 같은 패키지를 설치한 후 버전을 확인할 수 있습니다.
pip install package
import package
print(package.__version__)
패키지 버전이 표시됩니다.
언급URL : https://stackoverflow.com/questions/20180543/how-do-i-check-the-versions-of-python-modules
'source' 카테고리의 다른 글
| Python Django에서 유닛 테스트를 실행하는 동안 로깅을 비활성화하려면 어떻게 해야 합니까? (0) | 2023.01.15 |
|---|---|
| 달력이 잘못된 달을 반환함 (0) | 2023.01.15 |
| JavaScript를 난독화(보호)하려면 어떻게 해야 합니까? (0) | 2023.01.15 |
| 하위 앵커를 클릭할 때 상위 클릭 이벤트가 발생하지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.01.09 |
| python으로 현재 시각을 취득하여 년, 월, 일, 시간, 분으로 분할하는 방법 (0) | 2023.01.09 |
