[python] 로컬로 설치된 Python 모듈 목록을 어떻게 얻을 수 있습니까?

파이썬 설치 (UNIX 서버)에있는 파이썬 모듈 목록을 얻고 싶습니다.

컴퓨터에 파이썬 모듈 목록을 어떻게 얻을 수 있습니까?



답변

해결책

pip> 10.0과 함께 사용하지 마십시오!

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작업 디렉토리가 포함되어 있기 때문에, 두 번째 예제에서 누락 behavesetup.py파일을.

설명서에서이 문제에 대한 참조를 찾을 수 없습니다. 아마도 나는 그것에 대한 버그를 열 것이다.


답변

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당신 “입력 할 수 있습니다 importTab.”

  • 표준 Python 인터프리터에서 ” help('modules')“를 입력 할 수 있습니다 .

  • 명령 행에서을 사용할 수 있습니다 .pydoc modules

  • 스크립트에서을 호출하십시오 pkgutil.iter_modules().


답변

나는 이것을 현재 사용중인 모듈을보기 위해 사용합니다 :

import sys as s
s.modules.keys()

파이썬에서 실행중인 모든 모듈을 보여줍니다.

모든 내장 모듈에 대해 다음을 사용하십시오.

s.modules

모든 모듈과 가져 오기 객체를 포함하는 dict입니다.


답변

일반 쉘에서는

pydoc modules