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
behave
의 setup.py
파일이 포함되어 있기 때문에 두 번째 예제에서 누락되었습니다.
설명서에서이 문제에 대한 참조를 찾을 수 없습니다. 아마도 버그를 열어 보겠습니다.
출처 : https://stackoverflow.com/questions/739993/how-can-i-get-a-list-of-locally-installed-python-modules
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 3.x에서 목록을 반환할 map() 가져오기 (0) | 2021.08.20 |
---|---|
Python에서 날짜를 datetime으로 변환 (0) | 2021.08.20 |
파이썬 스레드에서 반환 값을 얻는 방법 (0) | 2021.08.13 |
Python을 사용하여 시스템 호스트 이름을 얻는 방법 (0) | 2021.08.13 |
Python에서 수동으로 예외 발생 (throwing) (0) | 2021.08.12 |