Подтвердить что ты не робот

Как я могу составить список установленных пакетов в определенном virtualenv?

Вы можете cd до YOUR_ENV/lib/pythonxx/site-packages/ и посмотреть, но есть ли какие-либо удобные способы?

pip freeze укажите все установленные пакеты, включая системную среду.

4b9b3361

Ответ 1

Вызов pip команды внутри virtualenv должен отображать пакеты, видимые/доступные в изолированной среде. Обязательно используйте последнюю версию virtualenv, которая по умолчанию использует опцию --no-site-packages. Таким образом, целью использования virtualenv является создание среды python без доступа к пакетам, установленным в системном python.

Затем убедитесь, что вы используете команду pip, предоставленную внутри virtualenv (YOUR_ENV/bin/pip). Или просто активируйте virtualenv (source YOUR_ENV/bin/activate) как удобный способ вызвать правильные команды для интерпретатора python или pip

~/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. Его из моего системного питона. В настоящее время я не знаю, почему, но, возможно, это отличается от вашей системы.

Ответ 2

Вы можете перечислить только пакеты в virtualenv pip freeze --local или pip list --local. Этот параметр работает независимо от того, есть ли в каталоге virtualenv глобальные пакеты сайтов.

Обратите внимание, что ограничение virtualenv не использования пакетов глобальных сайтов не является ответом на проблему, потому что вопрос заключается в том, как отделить два списка, а не как ограничивать наш рабочий процесс, чтобы он соответствовал ограничениям инструментов.

Кредиты на комментарий @gvalkov здесь. Ср также этот вопрос.

Ответ 3

список установленных пакетов в virtualenv

шаг 1:

имя пользователя workon envname

Шаг 2:

замораживание контура

отобразятся все установленные пакеты и установленные пакеты и версии

Ответ 4

Если вы все еще немного смущены virtualenv, вы можете не подобрать, как объединить отличные советы от ответов Иоанниса и Саши. То есть это основная команда, которая вам нужна:

/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

Ответ 5

почему бы вам не попробовать список пипсов

Помните, что я использую pip версии 19.1 на python версии 3.7.3

Ответ 6

В моем случае версия фляги была видна только под, поэтому мне пришлось перейти в C:\Users\\AppData\Local\flask\venv\Scripts> pip freeze --local

Ответ 7

Если вы используете pip 19.0.3 и python 3.7.4. Затем перейдите к команде pip list в вашем virtualenv. Он покажет все установленные пакеты с соответствующими версиями.