`pip3 freeze` печатает много пакетов в начале - PullRequest
0 голосов
/ 07 июня 2018

Я создал virtualenv и дал команду pip3 freeze, потому что я использую python3 для запуска своего проекта.

virtualenv .
source bin/activate
pip3 freeze

Однако pip3 freeze напечатал пакеты по умолчанию (?) Python3, даже если яеще не установил никаких пакетов:

backports.weakref==1.0rc1
bleach==1.5.0
certifi==2017.7.27.1
chardet==3.0.4
configparser==3.5.0
defusedxml==0.5.0
Django==1.11.12
django-allauth==0.32.0
django-crispy-forms==1.6.1
django-filter==1.0.4
django-widget-tweaks==1.4.1
djangorestframework==3.7.7
enum34==1.1.6
flake8==3.4.1
flake8-docstrings==1.1.0
flake8-polyfill==1.0.1
html5lib==0.9999999
idna==2.5
Keras==2.0.6
Markdown==2.6.8
mccabe==0.6.1
numpy==1.13.1
oauthlib==2.0.2
olefile==0.44
Pillow==4.2.1
protobuf==3.3.0
pycodestyle==2.3.1
pydocstyle==2.0.0
pyflakes==1.5.0
python3-openid==3.1.0
pytz==2018.3
PyYAML==3.12
requests==2.18.3
requests-oauthlib==0.8.0
scipy==0.19.1
six==1.10.0
snowballstemmer==1.2.1
tensorflow==1.2.1
Theano==0.9.0
urllib3==1.22
Werkzeug==0.12.2

Очевидно, я не хочу устанавливать tenorflow и Theano для моей виртуальной машины.: (

Почему у него есть пакеты по умолчанию (?) Python3? Можем ли мы запустить его с нуля?

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Хм, я думаю, что под «пакетами по умолчанию» вы подразумеваете стандартную библиотеку, которая поставляется вместе с интерпретатором.Многие из этих пакетов не являются стандартными пакетами библиотеки.Так что это заставляет меня поверить, что проблема в том, что виртуальный env был настроен неправильно и что ваш двоичный файл pip 3 указывает на уже установленные глобальные пакеты.

Давайте уточним и подтвердим несколько вещей.Виртуальная среда - это не что иное, как изменение конфигурации оболочки для указания на установленный интерпретатор python, локальный по отношению к каталогу, для которого она настроена.Из-за этого, когда ваша виртуальная среда активирована, вы должны получить как оболочку, так и следующую подсказку с указанием того, какой env активирован, и вы также можете запустить команду, чтобы увидеть, какую установку pip будет использовать ваша оболочка по умолчанию.

Iбудет делать следующее, сначала запустите эту команду в вашей оболочке, когда ваша виртуальная среда активирована:

which pip3

Это скажет вам точный используемый пип-подшипник.Если он указывает на тот, что в вашей виртуальной среде, то отлично!Если нет, давайте повторим это, используя встроенный модуль python 3 для venv:

python -m venv venv

Это создаст venv с именем venv (это соглашение, вы можете назвать его как угодно)

Активируйте его:

source venv/lib/activate

Затем проверьте еще раз:

Which pip3 

Дайте мне знать результаты

0 голосов
/ 23 февраля 2019

У меня была такая же проблема.
Если вы свяжетесь с which pip3, вы увидите /usr/bin/pip3 вместо вашего virtualenv.
Рекомендую для новых проектов иметь отдельную папку для virtualenv.В таком случае (или кто знает) будет проще сделать копию / переименовать / удалить его.

Мое решение:

  1. first deactivate
  2. обновить virtualenv pip3 install --upgrade virtualenv
  3. переименовать ваш virtualenv (на всякий случай).
  4. установить новый virtualenv virtualenv -p python3 uenv
  5. активировать virtualenv source uenv/bin/activate
  6. проверьте с помощью pip3 freeze, чтобы убедиться, что пусто
  7. установить из файла pip3 install -r requirements.txt

Теперь все будет в порядке.Если вы проверите с which pip3, вы увидите свой virtualenv.
Вы можете удалить старый virtualenv.
Этот метод позволяет записывать / читать пакеты из файла (requirements.txt), не редактируя файл вручную.Редактирование require.txt вручную является вредным привычкой и может привести к ошибкам.

0 голосов
/ 07 июня 2018

У вас есть пакеты, если вы можете import их.

import sys, а затем проверьте print(sys.path), для каких каталогов содержатся ваши пакеты.

Обычно это каталог, напримерБудет указано site-packages.

Вы можете pip3 uninstall <package>, что вам не нужно, и, если необходимо, удалить из каталога site-packages.Но pip3 uninstall является предпочтительным вариантом.

Обратите внимание, что вы также можете узнать о расположении вашего пакета, выполнив что-то вроде: pip3 show numpy

Который печатает:

Name: numpy
Version: 1.14.3
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email: None
License: BSD
Location: c:\python36\lib\site-packages
Requires:
Required-by: scipy, pandas
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...