developer tip

특정 virtualenv에 설치된 패키지 목록을 어떻게 만들 수 있습니까?

optionbox 2020. 12. 25. 09:38
반응형

특정 virtualenv에 설치된 패키지 목록을 어떻게 만들 수 있습니까?


당신은 수 cdYOUR_ENV/lib/pythonxx/site-packages/와보고가 있지만, 어떤 편리한 방법이 있습니까?

pip freeze 시스템 환경을 포함하여 설치된 모든 패키지를 나열합니다.


pipvirtualenv 내에서 명령을 호출 하면 격리 된 환경에서 표시 / 사용 가능한 패키지가 나열되어야합니다. --no-site-packages기본적으로 옵션을 사용하는 최신 버전의 virtualenv를 사용해야합니다 . 이런 식으로 virtualenv를 사용하는 목적은 시스템 Python에 설치된 패키지에 액세스하지 않고 Python 환경을 만드는 것입니다.

다음으로 pipvirtualenv ( YOUR_ENV/bin/pip)에 제공된 명령 을 사용하는지 확인하십시오 . 또는 YOUR_ENV/bin/activatePython 인터프리터 또는 pip에 대한 적절한 명령을 호출하는 편리한 방법으로 virtualenv (source )를 활성화하십시오.

~/Projects$ virtualenv --version
1.9.1

~/Projects$ virtualenv -p /usr/bin/python2.7 demoenv2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in demoenv2.7/bin/python2.7
Also creating executable in demoenv2.7/bin/python
Installing setuptools............................done.
Installing pip...............done.

~/Projects$ cd demoenv2.7/
~/Projects/demoenv2.7$ bin/pip freeze
wsgiref==0.1.2

~/Projects/demoenv2.7$ bin/pip install commandlineapp
Downloading/unpacking commandlineapp
Downloading CommandLineApp-3.0.7.tar.gz (142kB): 142kB downloaded
Running setup.py egg_info for package commandlineapp
Installing collected packages: commandlineapp
Running setup.py install for commandlineapp
Successfully installed commandlineapp
Cleaning up...

~/Projects/demoenv2.7$ bin/pip freeze
CommandLineApp==3.0.7
wsgiref==0.1.2

내 대답에서 이상한 점은 'wsgiref'패키지가 virtualenv 내부에서 볼 수 있다는 것입니다. 내 시스템 파이썬에서 가져온 것입니다. 현재는 이유를 모르겠지만 시스템에 따라 다를 수 있습니다.


virtualenvby pip freeze --local또는 에있는 패키지 만 나열 할 수 있습니다 pip list --local. 이 옵션은 .NET Framework에서 글로벌 사이트 패키지를 볼 수 있는지 여부에 관계없이 작동합니다 virtualenv.

virtualenv글로벌 사이트 패키지를 사용하지 않도록 제한하는 것은 문제에 대한 답이 아닙니다. 문제는 도구의 제한에 맞게 워크 플로를 제한하는 방법이 아니라 두 목록을 분리하는 방법에 관한 것이기 때문입니다.

여기 @gvalkov의 의견에 대한 크레딧 . Cf. 또한 이 문제 .


virtualenv에 설치된 패키지 나열

1 단계:

작업 환경

2 단계:

핍 동결

설치된 모든 패키지와 설치된 패키지 및 버전을 표시합니다.


여전히 약간 혼란 스러우면 virtualenvIoannis와 Sascha의 답변에서 훌륭한 팁을 결합하는 방법을 선택하지 못할 수도 있습니다. 즉 이것은 필요한 기본 명령입니다.

/YOUR_ENV/bin/pip freeze --local

다른 곳에서 쉽게 사용할 수 있습니다. 예를 들어 virtualenvwrapper를 통해 설정 한 모든 환경에 모든 로컬 패키지를 설치하는 데 적합한 편리하고 완전한 답변이 있습니다.

cd ${WORKON_HOME:-~/.virtualenvs}
for dir in *; do [ -d $dir ] && $dir/bin/pip freeze --local >  /tmp/$dir.fl; done
more /tmp/*.fl

핍 목록 을 시도하지 않습니까

Python 버전 3.7.3에서 pip 버전 19.1을 사용하고 있음을 기억하십시오.


제 경우에는 플라스크 버전이 아래에만 표시되었으므로 C : \ Users \\ AppData \ Local \ flask \ venv \ Scripts> pip freeze --local로 이동해야했습니다.


If you are using pip 19.0.3 and python 3.7.4. Then go for pip list command in your virtualenv. It will show all the installed packages with respective versions.

ReferenceURL : https://stackoverflow.com/questions/15961926/how-can-i-make-a-list-of-installed-packages-in-a-certain-virtualenv

반응형