프로그래밍 언어/Python

로컬에 설치된 Python 모듈 리스트를 얻는 방법

Rateye 2021. 8. 13. 10:16
728x90
반응형
질문 : 로컬에 설치된 Python 모듈 목록을 얻으려면 어떻게해야합니까?

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

컴퓨터에 설치된 Python 모듈 목록을 어떻게 얻을 수 있습니까?

답변

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

Python 스크립트에서 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) $

"setup.py"을 사용하여 git repo 복제

(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.

/tmp/behave 에 behave 's setup.py 가 있습니다.

(test_env) $ ls /tmp/behave/setup.py
/tmp/behave/setup.py

git repo에서 python 패키지 설치

(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/beave"에서 앞서 언급한 솔루션을 실행하는 경우

>>> 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 파일이 포함되어 있기 때문에 두 번째 예제에서 누락되었습니다.

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

출처 : https://stackoverflow.com/questions/739993/how-can-i-get-a-list-of-locally-installed-python-modules
728x90
반응형