programing

파이썬에서 설치된 모든 패키지와 해당 버전을 나열하는 방법은 무엇입니까?

lastmoon 2023. 6. 11. 11:13
반응형

파이썬에서 설치된 모든 패키지와 해당 버전을 나열하는 방법은 무엇입니까?

파이썬에서 설치된 모든 패키지와 해당 버전을 나열할 수 있는 방법이 있습니까?

안으로 들어갈 수 있다는 걸 알아요python/Lib/site-packages어떤 파일과 디렉터리가 있는지 확인합니다. 하지만 저는 이것이 매우 어색하다고 생각합니다. 있는 은 제가찾과 비슷한 것입니다.npm list를 들어, npm-ls.

pip 설치가 있고 설치 도구와 함께 설치된 패키지를 확인하려면 다음과 같이 간단히 부를 수 있습니다.

pip freeze

또한 설치된 패키지의 버전 번호도 포함됩니다.

갱신하다

도 pip과 되었습니다.pip freeze전화:

pip list

메모

의 입니다.pip list에 (번호를 을 구문 셸 ( 버전 번호를 파악하기 위해)freeze그리고 당신의 대본을 통화로 바꾸고 싶습니다.list구문 분석 코드를 변경해야 합니다.

help('modules')당신을 위해 그것을 해야 합니다.

IPython에서:

In [1]: import                      #import press-TAB
Display all 631 possibilities? (y or n)
ANSI                   audiodev               markupbase
AptUrl                 audioop                markupsafe
ArgImagePlugin         avahi                  marshal
BaseHTTPServer         axi                    math
Bastion                base64                 md5
BdfFontFile            bdb                    mhlib
BmpImagePlugin         binascii               mimetools
BufrStubImagePlugin    binhex                 mimetypes
CDDB                   bisect                 mimify
CDROM                  bonobo                 mmap
CGIHTTPServer          brlapi                 mmkeys
Canvas                 bsddb                  modulefinder
CommandNotFound        butterfly              multifile
ConfigParser           bz2                    multiprocessing
ContainerIO            cPickle                musicbrainz2
Cookie                 cProfile               mutagen
Crypto                 cStringIO              mutex
CurImagePlugin         cairo                  mx
DLFCN                  calendar               netrc
DcxImagePlugin         cdrom                  new
Dialog                 cgi                    nis
DiscID                 cgitb                  nntplib
DistUpgrade            checkbox               ntpath

설치된 python 배포판에 대한 정보를 얻고 싶고 cmd 콘솔이나 터미널을 사용하지 않고 python 코드를 통해 다음 코드를 사용할 수 있습니다(python 3.4로 테스트됨).

import pip #needed to use the pip functions
for i in pip.get_installed_distributions(local_only=True):
    print(i)

pip.get_installed_distributions(local_only=True)및으로 인해 한 항목에 포함된 는 새 줄 문자(function-call\n설치된 배포판에 따라 결과는 다음과 같습니다.

cycler 0.9.0
decorator 4.0.4
ipykernel 4.1.0
ipython 4.0.0
ipython-genutils 0.1.0
ipywidgets 4.0.3
Jinja2 2.8
jsonschema 2.5.1
jupyter 1.0.0
jupyter-client 4.1.1
#... and so on...

pip에서 (" "pip" "에서 테스트됨"pip==10.0.1 과 같이

from pip._internal.operations.freeze import freeze
for requirement in freeze(local_only=True):
    print(requirement)

내 생각엔:

#!/usr/bin/env python3

import pkg_resources

dists = [str(d).replace(" ","==") for d in pkg_resources.working_set]
for i in dists:
    print(i)

명령줄에서

python -c help('modules')

모든 모듈 및 특정 모듈을 보는 데 사용할 수 있습니다.

python -c help('os')

아래 Linux의 경우 작동합니다.

python -c "help('os')"

easy_install의 경우(사용되지 않음, Python <= v2.7, 이를 사용하지 말고 pip을 대신 사용하십시오. 여전히 easy_install을 사용하는 이전 프로젝트에서만 사용하십시오.)

시도할 수 있습니다: 노른자.

설치 노른자의 경우 다음을 시도합니다.

easy_install yolk

Yolk는 설치된 Python 패키지에 대한 정보를 얻고 Python 패키지 인덱스(Python Package Index)에서 사용할 수 있는 패키지를 쿼리하기 위한 Python 도구입니다.

활성, 비활성 또는 개발 모드에 있는 패키지를 확인하고 PyPI를 쿼리하여 사용 가능한 최신 버전을 표시할 수 있습니다.

네! 파이썬 패키지 관리자로 pip을 사용해야 합니다(http://pypi.python.org/pypi/pip ).

Pip이 설치된 패키지로, 당신은 할 수 있습니다.

pip freeze

설치된 모든 패키지가 나열됩니다.virtualenvvirtualenvrapper도 사용해야 합니다.당신이 새로운 프로젝트를 시작할 때, 당신은 할 수 있습니다.

mkvirtualenv my_new_project

그런 다음 (가상 환경을 포함하여) 실행합니다.

pip install all_your_stuff

식으로 게하면은, 신당렇이를 할 수 있습니다.workon my_new_project그리고 나서.pip freeze해당 가상 환경/프로젝트에 대해 설치된 패키지를 확인합니다.

예:

➜  ~  mkvirtualenv yo_dude
New python executable in yo_dude/bin/python
Installing setuptools............done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/get_env_details

(yo_dude)➜  ~  pip install django
Downloading/unpacking django
  Downloading Django-1.4.1.tar.gz (7.7Mb): 7.7Mb downloaded
  Running setup.py egg_info for package django

Installing collected packages: django
  Running setup.py install for django
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755

    changing mode of /Users/aaylward/dev/virtualenvs/yo_dude/bin/django-admin.py to 755
Successfully installed django
Cleaning up...

(yo_dude)➜  ~  pip freeze
Django==1.4.1
wsgiref==0.1.2

(yo_dude)➜  ~  

또는 requirements.python 파일이 있는 python 패키지가 있는 경우,

mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze

성공할 것입니다

아나콘다를 사용하는 경우:

conda list

할 것입니다!참조: https://conda.io/docs/_downloads/conda-cheatsheet.pdf

다음을 사용하여 수행하는 방법은 다음과 같습니다.PYTHONPATH파이썬 libs dir의 절대 경로 대신:

for d in `echo "${PYTHONPATH}" | tr ':' '\n'`; do ls "${d}"; done

[ 10:43 Jonathan@MacBookPro-2 ~/xCode/Projects/Python for iOS/trunk/Python for iOS/Python for iOS ]$ for d in `echo "$PYTHONPATH" | tr ':' '\n'`; do ls "${d}"; done
libpython2.7.dylib pkgconfig          python2.7
BaseHTTPServer.py      _pyio.pyc              cgitb.pyo              doctest.pyo            htmlentitydefs.pyc     mimetools.pyc          plat-mac               runpy.py               stringold.pyc          traceback.pyo
BaseHTTPServer.pyc     _pyio.pyo              chunk.py               dumbdbm.py             htmlentitydefs.pyo     mimetools.pyo          platform.py            runpy.pyc              stringold.pyo          tty.py
BaseHTTPServer.pyo     _strptime.py           chunk.pyc              dumbdbm.pyc            htmllib.py             mimetypes.py           platform.pyc           runpy.pyo              stringprep.py          tty.pyc
Bastion.py             _strptime.pyc          chunk.pyo              dumbdbm.pyo            htmllib.pyc            mimetypes.pyc          platform.pyo           sched.py               stringprep.pyc         tty.pyo
Bastion.pyc            _strptime.pyo          cmd.py
....

파이썬 내에서 실행하기 위해 이것이 필요하다면 하위 프로세스를 호출할 수 있습니다.

from subprocess import PIPE, Popen

pip_process = Popen(["pip freeze"], stdout=PIPE,
                   stderr=PIPE, shell=True)
stdout, stderr = pip_process.communicate()
print(stdout.decode("utf-8"))

코드를 사용하는 경우, 예를 들어 Hacker의 어떤 모듈 등을 확인할 수 있습니다.

import os
os.system("pip list")

Windows 10의 경우, 이것이 설치된 사용 가능한 Pythons 목록을 찾고 있는 것 같습니다.이것은 아래와 같이 패키지 목록과 다릅니다. 20가 "Ubuntu 20.04"인 것 .Python3 -0 list예, 노드 버전 관리자와 유사하게 작동합니다.

c:\Users\user\AppData\Local\Programs\Python>py -0 list

Python 0 not found!

Installed Pythons found by py Launcher for Windows

 -3.10-64 *
 -3.9-64
 -3.7-64
 -3.6-64
 -2.7-64

Requested Python version (0) not installed, use -0 for available pythons

c:\Users\user\AppData\Local\Programs\Python>py -0p
Installed Pythons found by py Launcher for Windows

 -3.10-64       C:\Python310\python.exe *

 -3.9-64        C:\Users\user\AppData\Local\Programs\Python\Python39\python.exe

 -3.7-64        C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe

 -3.6-64        C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe

 -2.7-64        C:\Python27amd64\python.exe

참조: https://www.infoworld.com/article/3617292/how-to-use-pythons-py-launcher-for-windows.html

참고 항목: https://www.freecodecamp.org/news/manage-multiple-python-versions-and-virtual-environments-venv-pyenv-pyvenv-a29fb00c296f/

위 링크에서 "단일 시스템에서 여러 버전의 Python을 사용하려면 pyenv가 일반적으로 설치 및 버전 간 전환에 사용되는 도구입니다.이는 앞서 언급한 감가상각된 pyvenv 스크립트와 혼동되어서는 안 됩니다.Python과 함께 제공되지 않으므로 별도로 설치해야 합니다." -- 참고: 이는 Node.js 및 NPM 버전의 Node Version Manager와 유사하게 작동합니다.

참고 항목: https://github.com/pyenv-win/pyenv-win#installation

조치: PowerShell을 열고 다음 웹 요청을 입력합니다.위의 링크는 다른 접근 방식도 제공하지만, 이것이 가장 쉬운 접근 방식인 것 같습니다.런타임 출력 파일의 이름은 원래 예상했던 대로 'pyenv-win'과 같은 이름 변형이 아니라 실제로 'pyenv'입니다.

PS C:\Users\user> Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

pyenv-win 2.64.11 installed.
No updates available.
PS C:\Users\user>

Python의 Version Manager인 'pyenv'로 작업하기 위한 출력 예제.

C:\Users\user>pyenv --version
pyenv 2.64.11

C:\Users\name>pyenv
pyenv 2.64.11
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands     List all available pyenv commands
   duplicate    Creates a duplicate python environment
   local        Set or show the local application-specific Python version
   global       Set or show the global Python version
   shell        Set or show the shell-specific Python version
   install      Install a Python version using python-build
   uninstall    Uninstall a specific Python version
   update       Update the cached version DB
   rehash       Rehash pyenv shims (run this after installing executables)
   vname        Show the current Python version
   version      Show the current Python version and its origin
   version-name Show the current Python version
   versions     List all Python versions available to pyenv
   exec         Runs an executable by first preparing PATH so that the selected Python
   which        Display the full path to an executable
   whence       List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv-win/pyenv-win#readme

C:\Users\name>pyenv commands
--version
commands
duplicate
exec
export
global
help
install
local
rehash
shell
shims
uninstall
update
version-name
version
versions
vname
whence
which

C:\Users\name>pyenv version
No global python version has been set yet. Please set the global version by typing:
pyenv global 3.7.2

C:\Users\user>pyenv local
no local version configured for this directory

C:\Users\user>pyenv global
no global version configured

C:\Users\user>pyenv local 3.9-64
pyenv specific python requisite didn't meet. Project is using different version of python.
Install python '3.9-64' by typing: 'pyenv install 3.9-64'

내 노트:'https://www.python.org/downloads/' '의 버전 이름이 'pyenv'에서 제공하는 버전 이름과 다릅니다.이 버전은 이미 로컬로 설치되었지만 이 Python 버전 관리자의 제어를 벗어나므로 관리자가 볼 수 없습니다.

C:\Users\user>pyenv install 3.8.10-64
:: [Info] ::  Mirror: https://www.python.org/ftp/python
pyenv-install: definition not found: local

내 노트:이 Python 버전은 'https://www.python.org/downloads/' 에 있지만 관리 목록에 포함되지 않습니다.그래서 당신은 매니저가 제공한 목록을 봐야 합니다.'pyenv install --list'로 사용 가능한 모든 버전을 봅니다.

C:\Users\user>pyenv install --list
Note: Review the list from this call and make your selection.

C:\Users\user>pyenv install 3.8.10
:: [Info] ::  Mirror: https://www.python.org/ftp/python
:: [Downloading] ::  3.8.10 ...
:: [Downloading] ::  From https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64-webinstall.exe
:: [Downloading] ::  To   C:\Users\user\.pyenv\pyenv-win\install_cache\python-3.8.10-amd64-webinstall.exe
:: [Installing] ::  3.8.10 ...
:: [Info] :: completed! 3.8.10

내 노트:이 Python 버전 관리자인 'pyenv'를 설치한 후 Node.js Version Manager(NVM)와 동일한 패러다임을 따르는 설치 후 버전을 'local' 또는 'global'로 지정해야 합니다.다시 말씀드리지만, 제가 보기에 Python 버전 관리자는 Manager가 설치하는 Python 버전만 볼 수 있고, Python 버전 관리자와 함께 설치한 버전만 제거할 수 있습니다.

C:\Users\user>pyenv local 3.8.10

C:\Users\user>pyenv local
3.8.10

C:\Users\user>pyenv version
3.8.10 (set by C:\Users\user\.python-version)

C:\Users\user>pyenv versions
* 3.8.10 (set by C:\Users\user\.python-version)

C:\Users\user>pyenv vname
3.8.10

C:\Users\user>pyenv global
no global version configured

아래는 패키지 작업을 위한 것입니다.

참고 항목: https://www.freecodecamp.org/news/manage-multiple-python-versions-and-virtual-environments-venv-pyenv-pyvenv-a29fb00c296f/

위 링크에서 "환경이 활성화되면 정상적으로 pip을 통해 모든 패키지를 설치할 수 있습니다.기본적으로 새로 생성된 환경에는 시스템에 이미 설치된 패키지가 포함되지 않습니다.기계에 반드시 파이프 자체를 설치할 필요는 없습니다.먼저 'pip install --upgrade pip'을 사용하여 최신 버전으로 pip을 업그레이드하는 것이 좋습니다. -- 아래 패키지와 해당 버전을 나열하기 위해 이 두 번의 호출을 하기 직전에 pip 업그레이드를 수행했습니다.

c:\Users\user\AppData\Local\Programs\Python>pip list

Package    Version
---------- -------
pip        22.1
setuptools 62.2.0
wheel      0.37.1

c:\Users\user\AppData\Local\Programs\Python>pip list --local

Package    Version
---------- -------
pip        22.1
setuptools 62.2.0
wheel      0.37.1

pkg_resources 설명서에 따르면 현재 권장되는 방법은 버전 3.8 이후 표준 라이브러리의 일부인 importlib.metadata를 사용하는 것입니다.

from importlib import metadata
for dist in metadata.distributions():
    print(f"{dist.name}=={dist.version}")

언급URL : https://stackoverflow.com/questions/12939975/how-to-list-all-installed-packages-and-their-versions-in-python

반응형