파이썬 설치 (UNIX 서버)에있는 파이썬 모듈 목록을 얻고 싶습니다.
컴퓨터에 파이썬 모듈 목록을 어떻게 얻을 수 있습니까?
파이썬 설치 (UNIX 서버)에있는 파이썬 모듈 목록을 얻고 싶습니다.
컴퓨터에 파이썬 모듈 목록을 어떻게 얻을 수 있습니까?
답변:
pip freeze
파이썬 스크립트에서 비슷한 목록 을 얻는 것에 대한 50 센트 :
import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
for i in installed_packages])
print(installed_packages_list)
(너무 긴) 한 라이너로 :
sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
기부:
['behave==1.2.4', 'enum34==1.0', 'flask==0.10.1', 'itsdangerous==0.24',
'jinja2==2.7.2', 'jsonschema==2.3.0', 'markupsafe==0.23', 'nose==1.3.3',
'parse-type==0.3.4', 'parse==1.6.4', 'prettytable==0.7.2', 'requests==2.3.0',
'six==1.6.1', 'vioozer-metadata==0.1', 'vioozer-users-server==0.1',
'werkzeug==0.9.4']
이 솔루션은 시스템 범위 또는 가상 환경 범위에 적용되며 setuptools
, pip
및 ( god forbid )에 의해 설치된 패키지를 포함합니다 easy_install
.
이 호출 결과를 플라스크 서버에 추가 했으므로 호출 http://example.com/exampleServer/environment
하면 서버의 virtualenv에 설치된 패키지 목록이 표시됩니다. 디버깅이 훨씬 쉬워집니다.
파이썬 인터프리터가 setup.py
파일 과 같은 디렉토리에서 호출 될 때이 기술의 이상한 동작을 발견 했습니다 setup.py
.
$ cd /tmp
$ virtualenv test_env
New python executable in test_env/bin/python
Installing setuptools, pip...done.
$ source test_env/bin/activate
(test_env) $
git repo를 복제 setup.py
(test_env) $ git clone https://github.com/behave/behave.git
Cloning into 'behave'...
remote: Reusing existing pack: 4350, done.
remote: Total 4350 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4350/4350), 1.85 MiB | 418.00 KiB/s, done.
Resolving deltas: 100% (2388/2388), done.
Checking connectivity... done.
우리는 다음과 같이 행동 setup.py
했습니다 /tmp/behave
.
(test_env) $ ls /tmp/behave/setup.py
/tmp/behave/setup.py
git repo에서 파이썬 패키지 설치
(test_env) $ cd /tmp/behave && pip install .
running install
...
Installed /private/tmp/test_env/lib/python2.7/site-packages/enum34-1.0-py2.7.egg
Finished processing dependencies for behave==1.2.5a1
/tmp
>>> import pip
>>> sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
['behave==1.2.5a1', 'enum34==1.0', 'parse-type==0.3.4', 'parse==1.6.4', 'six==1.6.1']
>>> import os
>>> os.getcwd()
'/private/tmp'
/tmp/behave
>>> import pip
>>> sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
['enum34==1.0', 'parse-type==0.3.4', 'parse==1.6.4', 'six==1.6.1']
>>> import os
>>> os.getcwd()
'/private/tmp/behave'
behave==1.2.5a1
작업 디렉토리가 포함되어 있기 때문에, 두 번째 예제에서 누락 behave
의 setup.py
파일을.
설명서에서이 문제에 대한 참조를 찾을 수 없습니다. 아마도 나는 그것에 대한 버그를 열 것이다.
import pkg_resources; installed_packages = [(d.project_name, d.version) for d in pkg_resources.working_set]
AttributeError: module 'pip' has no attribute 'get_installed_distributions'
됩니다.
help('modules')
파이썬 쉘 / 프롬프트에서.
pydoc modules
작동합니다. 답변으로 제출해야합니다.
python -c 'help("modules")'
이제,이 방법들을 직접 시도해 보았고 광고 된 내용을 정확히 얻었습니다 : 모든 모듈.
아아, 실제로 stdlib에 대해별로 신경 쓰지 않고 파이썬 설치로 얻는 것을 알고 있습니다.
정말, 나는 그 물건을 원하는 내가 설치.
놀랍게도 실제로 잘 작동 한 것은 다음과 같습니다.
pip freeze
어느 것이 반환 :
Fabric==0.9.3
apache-libcloud==0.4.0
bzr==2.3b4
distribute==0.6.14
docutils==0.7
greenlet==0.3.1
ipython==0.10.1
iterpipes==0.4
libxml2-python==2.6.21
패키지 설치 도구가 '동결'이라는 이름은 아니지만 파이썬 패키징이 이상하기는하지만이 기능을 찾을 수있는 정확한 장소이기 때문에 "놀랍게도"라고 말합니다. 핍 0.8.2, 파이썬 2.7.
pip 버전 1.3부터 다음에 액세스 할 수 있습니다.
pip list
"pip freeze"의 구문 설탕 인 것 같습니다. 설치 또는 virtualenv와 관련된 모든 모듈과 버전 번호가 나열됩니다. 불행히도 현재 모듈의 버전 번호를 표시하지 않으며 설거지를하거나 신발을 닦지 않습니다.
에서 ipython
당신 "입력 할 수 있습니다 import
Tab."
표준 Python 인터프리터에서 " help('modules')
"를 입력 할 수 있습니다 .
명령 행에서을 사용할 수 있습니다 .pydoc
modules
스크립트에서을 호출하십시오 pkgutil.iter_modules()
.
pkgutil.iter_modules()
위의 pip 솔루션은 모든 패키지가 아니라 pip를 통해 설치된 패키지를 나열합니다.
python -c 'import pkgutil;print [x[1] for x in list(pkgutil.iter_modules())]'
. 모든 모듈 이름을 하나의 큰 파이썬 목록으로 덤프해야합니다. 이 x[1]
비트는에 의해 생성 된 튜플에서 모듈 이름을 뽑는 데 사용됩니다 pkgutil.iter_modules()
.
나는 이것을 현재 사용중인 모듈을보기 위해 사용합니다 :
import sys as s
s.modules.keys()
파이썬에서 실행중인 모든 모듈을 보여줍니다.
모든 내장 모듈에 대해 다음을 사용하십시오.
s.modules
모든 모듈과 가져 오기 객체를 포함하는 dict입니다.
pydoc
않았거나 pip
설치 되지 않은 제한된 시스템 (제 경우에는 NAS)에서 작동하는 유일한 방법이기 때문에 피봇 되었습니다.
help('modules')
응답하지 않고 그냥 달려요. 그러나이 접근법 sys
은 완벽하게 작동합니다
일반 쉘에서는
pydoc modules
py -m pydoc modules
cmd 또는 Powershell에서 수행 할 수 있습니다 .
pydoc modules
Python 3.6이 설치된 Windows 10 py -m pydoc modules
에서는 작동하지 않지만 @VKK 수정 은 cmd / Powershell에서 작동합니다.
pip 10 현재 허용 된 답변이 더 이상 작동하지 않습니다. 개발 팀은 get_installed_distributions
루틴에 대한 액세스를 제거했습니다 . setuptools
동일한 작업을 수행하기위한 대체 기능이 있습니다 . 다음은 pip 10에서 작동하는 대체 버전입니다.
import pkg_resources
installed_packages = pkg_resources.working_set
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
for i in installed_packages])
print(installed_packages_list)
이전 버전의 pip에서도 작동하는지 여부를 알려주십시오.
pip freeze
. 와 (과)의 불일치에 대한 답변이 없습니다 . 이 주제에 대한 나의 지식의 깊이는 다소 제한적이다. 받아 들여진 대답이 저에게 효과가 없을 때 해결책으로 향한 혼란에 빠졌고 관련 답변과 결합 setuptools
하여 작동 시켰습니다.
get_installed_distributions routine
.
setuptools
.
pkgutil.iter_modules를 사용한 매우 간단한 검색
from pkgutil import iter_modules
a=iter_modules()
while True:
try: x=a.next()
except: break
if 'searchstr' in x[1]: print x[1]
for m in iter_modules()
잘 작동했다.
터미널 또는 IPython에서 다음을 입력하십시오.
help('modules')
그때
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
이 용액에 기초한 기본 모듈이다 importlib
및 pkgutil
CPython의 3.4 및 3.5의 CPython 작업하지만 CPython과 2에 대한 지원이 없다.
설명
sys.builtin_module_names
-모든 내장 모듈의 이름을 지정합니다 ( 여기서 내 대답을 보십시오 )pkgutil.iter_modules()
-사용 가능한 모든 모듈에 대한 정보를 반환합니다importlib.util.find_spec()
-존재하는 경우 모듈 반입에 대한 정보를 리턴합니다.BuiltinImporter
-내장 모듈 수입 업체 ( docs )SourceFileLoader
-표준 파이썬 모듈의 수입업자 (기본적으로 확장자 * .py를 가짐) ( docs )ExtensionFileLoader
- 공유 라이브러리 로 모듈을 가져 오기 (C 또는 C ++로 작성)전체 코드
import sys
import os
import shutil
import pkgutil
import importlib
import collections
if sys.version_info.major == 2:
raise NotImplementedError('CPython 2 is not supported yet')
def main():
# name this file (module)
this_module_name = os.path.basename(__file__).rsplit('.')[0]
# dict for loaders with their modules
loaders = collections.OrderedDict()
# names`s of build-in modules
for module_name in sys.builtin_module_names:
# find an information about a module by name
module = importlib.util.find_spec(module_name)
# add a key about a loader in the dict, if not exists yet
if module.loader not in loaders:
loaders[module.loader] = []
# add a name and a location about imported module in the dict
loaders[module.loader].append((module.name, module.origin))
# all available non-build-in modules
for module_name in pkgutil.iter_modules():
# ignore this module
if this_module_name == module_name[1]:
continue
# find an information about a module by name
module = importlib.util.find_spec(module_name[1])
# add a key about a loader in the dict, if not exists yet
loader = type(module.loader)
if loader not in loaders:
loaders[loader] = []
# add a name and a location about imported module in the dict
loaders[loader].append((module.name, module.origin))
# pretty print
line = '-' * shutil.get_terminal_size().columns
for loader, modules in loaders.items():
print('{0}\n{1}: {2}\n{0}'.format(line, len(modules), loader))
for module in modules:
print('{0:30} | {1}'.format(module[0], module[1]))
if __name__ == '__main__':
main()
용법
CPython3.5의 경우 (절사 됨)
$ python3.5 python_modules_info.py
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
30: <class '_frozen_importlib.BuiltinImporter'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_ast | built-in
_codecs | built-in
_collections | built-in
_functools | built-in
_imp | None
_io | built-in
_locale | built-in
_operator | built-in
_signal | built-in
_sre | built-in
_stat | built-in
_string | built-in
_symtable | built-in
_thread | built-in
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
227: <class '_frozen_importlib_external.SourceFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__future__ | /usr/local/lib/python3.5/__future__.py
_bootlocale | /usr/local/lib/python3.5/_bootlocale.py
_collections_abc | /usr/local/lib/python3.5/_collections_abc.py
_compat_pickle | /usr/local/lib/python3.5/_compat_pickle.py
_compression | /usr/local/lib/python3.5/_compression.py
_dummy_thread | /usr/local/lib/python3.5/_dummy_thread.py
_markupbase | /usr/local/lib/python3.5/_markupbase.py
_osx_support | /usr/local/lib/python3.5/_osx_support.py
_pydecimal | /usr/local/lib/python3.5/_pydecimal.py
_pyio | /usr/local/lib/python3.5/_pyio.py
_sitebuiltins | /usr/local/lib/python3.5/_sitebuiltins.py
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
64: <class '_frozen_importlib_external.ExtensionFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_bisect | /usr/local/lib/python3.5/lib-dynload/_bisect.cpython-35m-x86_64-linux-gnu.so
_bz2 | /usr/local/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
_codecs_cn | /usr/local/lib/python3.5/lib-dynload/_codecs_cn.cpython-35m-x86_64-linux-gnu.so
_codecs_hk | /usr/local/lib/python3.5/lib-dynload/_codecs_hk.cpython-35m-x86_64-linux-gnu.so
_codecs_iso2022 | /usr/local/lib/python3.5/lib-dynload/_codecs_iso2022.cpython-35m-x86_64-linux-gnu.so
(****************************truncated*******************************)
CPython3.4의 경우 (잘림)
$ python3.4 python_modules_info.py
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
54: <class '_frozen_importlib.BuiltinImporter'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_ast | built-in
_bisect | built-in
_codecs | built-in
_collections | built-in
_datetime | built-in
_elementtree | built-in
_functools | built-in
_heapq | built-in
_imp | None
_io | built-in
_locale | built-in
_md5 | built-in
_operator | built-in
_pickle | built-in
_posixsubprocess | built-in
_random | built-in
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
246: <class '_frozen_importlib.SourceFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__future__ | /usr/lib/python3.4/__future__.py
_bootlocale | /usr/lib/python3.4/_bootlocale.py
_collections_abc | /usr/lib/python3.4/_collections_abc.py
_compat_pickle | /usr/lib/python3.4/_compat_pickle.py
_dummy_thread | /usr/lib/python3.4/_dummy_thread.py
_markupbase | /usr/lib/python3.4/_markupbase.py
_osx_support | /usr/lib/python3.4/_osx_support.py
_pyio | /usr/lib/python3.4/_pyio.py
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
44: <class '_frozen_importlib.ExtensionFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_bz2 | /usr/lib/python3.4/lib-dynload/_bz2.cpython-34m-x86_64-linux-gnu.so
_codecs_cn | /usr/lib/python3.4/lib-dynload/_codecs_cn.cpython-34m-x86_64-linux-gnu.so
_codecs_hk | /usr/lib/python3.4/lib-dynload/_codecs_hk.cpython-34m-x86_64-linux-gnu.so
_codecs_iso2022 | /usr/lib/python3.4/lib-dynload/_codecs_iso2022.cpython-34m-x86_64-linux-gnu.so
_codecs_jp | /usr/lib/python3.4/lib-dynload/_codecs_jp.cpython-34m-x86_64-linux-gnu.so
_codecs_kr | /usr/lib/python3.4/lib-dynload/_codecs_kr.cpython-34m-x86_64-linux-gnu.so
_codecs_tw | /usr/lib/python3.4/lib-dynload/_codecs_tw.cpython-34m-x86_64-linux-gnu.so
_crypt | /usr/lib/python3.4/lib-dynload/_crypt.cpython-34m-x86_64-linux-gnu.so
(****************************truncated*******************************)
pip
Python으로 작성된 소프트웨어 패키지를 설치하고 관리하는 데 사용되는 패키지 관리 시스템을 기반으로 하며 결과 pip.get_installed_distributions()
는 pip와 함께 설치된 모듈을 반환합니다. 내 대답은 전적으로 Python의 표준 라이브러리를 기반으로하며 가져올 수있는 모든 모듈을 다룹니다. 내 대답의 가장 큰 단점
**truncated**
출력이 잘리는 특별한 의미 가 있습니다. 어쩌면 조심하지는 않지만 그렇지 않은 경우 시스템 및 Python 구현에 대한 정보를 보내려면 추가 연구를 통해 문제를 해결할 것입니다.
경고 : Adam Matan은 pip> 10.0에서이 사용을 권장하지 않습니다. 또한 아래 @sinoroc의 의견을 읽으십시오.
이것은 Adam Matan의 답변 (허용 된 답변) 에서 영감을 얻었습니다 .
import tabulate
try:
from pip import get_installed_distributions
except:
from pip._internal.utils.misc import get_installed_distributions
tabpackages = []
for _, package in sorted([('%s %s' % (i.location, i.key), i) for i in get_installed_distributions()]):
tabpackages.append([package.location, package.key, package.version])
print(tabulate.tabulate(tabpackages))
그런 다음 형식으로 표를 인쇄합니다
19:33 pi@rpi-v3 [iot-wifi-2] ~/python$ python installed_packages.py
------------------------------------------- -------------- ------
/home/pi/.local/lib/python2.7/site-packages enum-compat 0.0.2
/home/pi/.local/lib/python2.7/site-packages enum34 1.1.6
/home/pi/.local/lib/python2.7/site-packages pexpect 4.2.1
/home/pi/.local/lib/python2.7/site-packages ptyprocess 0.5.2
/home/pi/.local/lib/python2.7/site-packages pygatt 3.2.0
/home/pi/.local/lib/python2.7/site-packages pyserial 3.4
/usr/local/lib/python2.7/dist-packages bluepy 1.1.1
/usr/local/lib/python2.7/dist-packages click 6.7
/usr/local/lib/python2.7/dist-packages click-datetime 0.2
/usr/local/lib/python2.7/dist-packages construct 2.8.21
/usr/local/lib/python2.7/dist-packages pyaudio 0.2.11
/usr/local/lib/python2.7/dist-packages tabulate 0.8.2
------------------------------------------- -------------- ------
그러면 설치하거나 설치하지 않은 패키지를 쉽게 식별 할 수 있습니다 sudo
.
참고 사항 : 나는 한 번 sudo
또는 한 번없이 패킷을 설치할 때 하나가 우선하여 다른 하나는 나열되지 않습니다 (하나의 위치 만 표시됨). 그런 다음 로컬 디렉토리의 디렉토리 만 나열됩니다. 이것은 향상 될 수 있습니다.
pip
한 번만 사용한 다음 종료 한다는 유일한 목적을 가지고 있기 때문에 포인트 1 ~ 3은이 솔루션에 적용되지 않는 것 같습니다 . 동작이 변경 될 수있는 문제가 더있는 것 같습니다.
_internal
). 결국, 그것은 분명히 작동하지만 나쁜 습관입니다. 더 나은 대안이 있으며 일부는이 질문에 대한 다른 답변에 있습니다.
사용 외에도 가상 환경에 노른자 를 pip freeze
설치 했습니다.
sys.modules
pip
)pip.get_installed_distributions()
두 번째 목적으로 예제 코드는 다음과 같습니다.
import pip
for package in pip.get_installed_distributions():
name = package.project_name # SQLAlchemy, Django, Flask-OAuthlib
key = package.key # sqlalchemy, django, flask-oauthlib
module_name = package._get_metadata("top_level.txt") # sqlalchemy, django, flask_oauthlib
location = package.location # virtualenv lib directory etc.
version = package.version # version number
system.modules
대신에 사용 하고 sys.modules
있습니다.
많은 아이디어가 있습니다. 처음에는이 두 가지에 대해 숙고하고 있습니다.
씨
단점 : 항상 설치되는 것은 아님
도움말 ( '모듈')
단점 : 콘솔로 출력; 깨진 모듈로 (ubuntu 참조) segfault 할 수 있습니다
기본 라이브러리를 사용하고 이전 Python 2.x와 호환되는 쉬운 접근 방식이 필요합니다.
그리고 나는 빛을 본다 : listmodules.py
2.5의 문서 소스 디렉토리에 숨겨진 것은 Python 설치에 사용 가능한 모든 모듈을 나열하는 작은 스크립트입니다.
장점 :
용도는 , SYS, 운영 체제, 다시 시간을 꼬마 도깨비
Python 1.5.2 이상에서 실행되도록 설계
소스 코드는 매우 간결하므로 버그가있는 모듈의 예외 목록을 전달하는 등의 간단한 수정 작업을 수행 할 수 있습니다 (가져 오기 시도하지 않음)
AWS Lambda에서 기본적으로 사용 가능한 특정 버전의 패키지를 찾아야했습니다. 나는이 페이지에서 아이디어를 매쉬업했다. 나는 후손을 위해 그것을 공유하고 있습니다.
import pkgutil
__version__ = '0.1.1'
def get_ver(name):
try:
return str(__import__(name).__version__)
except:
return None
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': [{
'path': m.module_finder.path,
'name': m.name,
'version': get_ver(m.name),
} for m in list(pkgutil.iter_modules())
#if m.module_finder.path == "/var/runtime" # Uncomment this if you only care about a certain path
],
}
내가 발견 한 것은 제공된 boto3 라이브러리가 오래되어 코드가 실패한 것이 내 잘못이 아니라는 것입니다. 내 프로젝트에 boto3과 botocore를 추가해야했습니다. 그러나 이것이 없으면 코드가 잘못되었다고 생각하면서 머리를 두드리고 있었을 것입니다.
{
"statusCode": 200,
"body": [
{
"path": "/var/task",
"name": "lambda_function",
"version": "0.1.1"
},
{
"path": "/var/runtime",
"name": "bootstrap",
"version": null
},
{
"path": "/var/runtime",
"name": "boto3",
"version": "1.9.42"
},
{
"path": "/var/runtime",
"name": "botocore",
"version": "1.12.42"
},
{
"path": "/var/runtime",
"name": "dateutil",
"version": "2.7.5"
},
{
"path": "/var/runtime",
"name": "docutils",
"version": "0.14"
},
{
"path": "/var/runtime",
"name": "jmespath",
"version": "0.9.3"
},
{
"path": "/var/runtime",
"name": "lambda_runtime_client",
"version": null
},
{
"path": "/var/runtime",
"name": "lambda_runtime_exception",
"version": null
},
{
"path": "/var/runtime",
"name": "lambda_runtime_marshaller",
"version": null
},
{
"path": "/var/runtime",
"name": "s3transfer",
"version": "0.1.13"
},
{
"path": "/var/runtime",
"name": "six",
"version": "1.11.0"
},
{
"path": "/var/runtime",
"name": "test_bootstrap",
"version": null
},
{
"path": "/var/runtime",
"name": "test_lambda_runtime_client",
"version": null
},
{
"path": "/var/runtime",
"name": "test_lambda_runtime_marshaller",
"version": null
},
{
"path": "/var/runtime",
"name": "urllib3",
"version": "1.24.1"
},
{
"path": "/var/lang/lib/python3.7",
"name": "__future__",
"version": null
},
...
내가 발견 한 것은 그들이 공식적으로 출판 한 것과는 달랐다 . 이 글을 쓰는 시점에서 :
- 운영 체제 – Amazon Linux
- AMI – amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2
- 리눅스 커널 – 4.14.77-70.59.amzn1.x86_64
- JavaScript 용 AWS SDK – 2.290.0 \
- Python 용 SDK (Boto 3) – 3-1.7.74 botocore-1.10.74
다음은 설치된 모듈 목록을 반환하는 파이썬 코드 솔루션입니다. 버전 번호를 포함하도록 코드를 쉽게 수정할 수 있습니다.
import subprocess
import sys
from pprint import pprint
installed_packages = reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze']).decode('utf-8')
installed_packages = installed_packages.split('\r\n')
installed_packages = [pkg.split('==')[0] for pkg in installed_packages if pkg != '']
pprint(installed_packages)
pip list
파이썬 프로그램에서 호출하는 방법을 궁금해하는 사람 은 다음을 사용할 수 있습니다.
import pip
pip.main(['list]) # this will print all the packages
껍질에서
ls site-packages
도움이되지 않으면 할 수 있습니다.
import sys
import os
for p in sys.path:
print os.listdir( p )
그리고 그것이 무엇을 생산하는지보십시오.