파이썬 설치 (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
작업 디렉토리가 포함되어 있기 때문에, 두 번째 예제에서 누락 behave
의 setup.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
당신 “입력 할 수 있습니다import
Tab.” -
표준 Python 인터프리터에서 ”
help('modules')
“를 입력 할 수 있습니다 . -
명령 행에서을 사용할 수 있습니다 .
pydoc
modules
-
스크립트에서을 호출하십시오
pkgutil.iter_modules()
.
답변
나는 이것을 현재 사용중인 모듈을보기 위해 사용합니다 :
import sys as s
s.modules.keys()
파이썬에서 실행중인 모든 모듈을 보여줍니다.
모든 내장 모듈에 대해 다음을 사용하십시오.
s.modules
모든 모듈과 가져 오기 객체를 포함하는 dict입니다.
답변
일반 쉘에서는
pydoc modules