pip list и pip freeze в чем разница?
Бывает, что pip freeze показывать меньше пакетов чем pip list.
KRex ★
09.10.19 22:42:52 MSK

Output installed packages in requirements format. Packages are listed in a case-insensitive sorted order.
List installed packages, including editables. Packages are listed in a case-insensitive sorted order.
Anoxemian ★★★★★
( 09.10.19 22:46:31 MSK )
Ответ на: комментарий от Anoxemian 09.10.19 22:46:31 MSK
Я это читал.
list Список установленных пакетов, включая редактируемые. Пакеты перечислены в порядке сортировки без учета регистра.
Что значит редактируемые?
KRex ★
( 09.10.19 23:16:51 MSK ) автор топика
Ответ на: Я это читал. от KRex 09.10.19 23:16:51 MSK
Упрощенно: обычно при установке содержимое питоновского пакета копируется, для редактируемых (development mode) навешиваются ссылки, поэтому после редактирования пакета его не надо переустанавливать.
lu4nik ★★★
( 09.10.19 23:26:14 MSK )
Ответ на: комментарий от lu4nik 09.10.19 23:26:14 MSK
Протестировал
Создал файл setup.py со следующим содержимым
from setuptools import setup setup(name='tested', py_modules=['tested'])
sudo python3 setup.py develop
И пакет tested стал редактируемым, но он доступ через pip list и через pip freeze, а должен быть виден только из pip list исходя из описания команды.
Все требования в одном месте – requirements.txt
Обычно для запуска проекта требуется несколько внешних пакетов.
Чтобы каждый раз с болью в сердце не собирать их, список этих пакетов принято поставлять вместе с исходным кодом. Принято селить весь список необходимых пакетов в файле requirements.txt в корне проекта. Формат этого файла простой: по одному пакету на строку.
Заморозка пакетов
У одного пакета обычно много версий. Когда мы просим пип установить пакет, он устанавливает самую свежую из доступных.
Это может привести к проблемам: скажем, проект разрабатывался на версии 1.2. Через полгода потребовалось развернуть его заново, пип установил последнюю версию – 1.5. Эта версия может быть не совместима со старой, тогда код сломается.
Например, такая история была с модулем vk : в версии 1.5 нужно было использовать класс vk.api.APISession , а в версии 2.0 – vk.OAuthAPI . Понятное дело, программа, которая использует не ту версию модуля, ломалась – старого класса-то нет.
Чтобы такого не происходило, пакеты принято замораживать – указывать версию пакета вместе с названием. Пип поддерживает такой синтаксис: модуль==версия .
Вот часть requirements.txt из Девмана:
django==1.10.2 pillow==3.3.0 gunicorn==19.6.0 sorl-thumbnail==12.3 ptpython==0.35
Получить все версии пакетов, установленных на вашем компьютере, можно командой pip freeze :
$ pip freeze django==1.10.2 pillow==3.3.0 gunicorn==19.6.0 sorl-thumbnail==12.3 ptpython==0.35 .
Все зависимости заморозить и в requirements.txt
Установка
Все пакеты из requirements.txt можно установить одним махом, пип такое умеет: pip install -r requirements.txt .
Зависимости зависимостей
К сожалению, правильное заполнение requirements.txt не решает все проблемы с зависимостями и версиями.
Дело в том, что у перечисленных в файле зависимостей есть свои зависимости. Например, модуль vk для своей установки требует модуль requests . Пип установит его сам, незаметно для нас.
Проблема в том, что если модуль requests не заморожен в исходниках модуля vk , через полгода всё опять может сломаться: версия vk будет правильная, а requests – нет.
Эта проблема свойственна большим проектам, у которых десятки зависимостей и сотни неявных зависимостей.
Решение этой проблемы рассмотрим в другой раз. Главное – быть начеку.
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.
Введение¶
Для вызова интерактивной среды разработчика достаточно в консоли набрать команду:
python3

В этой интерактивной среде можно выполнять команды Python и сразу же получать результат выполнение введенной команды.
Редакторы кода и серда разработки IDE¶
Для написания программ на языке Python подойдет любой текстовый редактор, но для более комфортной работы рекомендуется использовать редакторы кода с подсветкой синтаксиса и отслеживанием ошибок. один из таких редакторов, это VSCODE
Так же будет полезно использовать полноценную среду разработки IDE, одной из наиболее популярных евляется PyCharm
Виртуальное окружение (venv)¶
Для начала работы рекомендуется подготовить виртуальное окружение, оно необходимо для того что бы вслучае использования дополнительных библиотек они не конфликтовали с другими библиотеками используемыми в других проектах, например: нет необходимости держать в одном проекте библиотеки фреймворков Django и Flask
Для того что бы создать виртуальное окружение, в папке с проектом необходимо выполнить команду:
python -m venv venv
незабудьте так же активировать ваше виртуальное окружение выполнив команду:
source venv/bin/activate
это создаст внутри проекта папку venv с компилятором и всеми необходимыми библиотеками используемые по умолчанию.
Так же для того что бы сохранить список используемых в нашем проекте библиотек, нужно создать файл reqirements.txt его можно создать автоматически выполнив команду:
pip freeze > requirements.txt
Для установки в наше виртуальное окружение необходимых библиотек нужно выполнить команду:
pip install requirements.txt
Попробуйте установить фреймворк flask используя менеджер пакетов pip и сохраните список установленных пакетов:
pip install flask pip freeze > requirements.txt
Теперь если вы откроете файл requirements вы увидите список наших зависимостей используемые в нашем проекте
click==7.1.2 Flask==1.1.2 itsdangerous==1.1.0 Jinja2==2.11.2 MarkupSafe==1.1.1 Werkzeug==1.0.1
Первая программа¶
Настало время написать нашу первую программу, создайте файл Hello_World.py со следующим содержимым:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Это моя первая программа """ Это многострочный коментарий использыется для создания докуентации к ксласам или функциям и описывает их принцип работы. В данном уроке мы пока не будет рассматривать примеры с документацией классов """ a = "World" # так помно присвоить конкретной переменной какое либо значение, в данном случее строку. if __name__ == '__main__': print("Hello", a) # программа напечатет в консоли Hello World
Теперь запустите нашу программу выполгив в консоле команнду:
python Hello_World.py
в консои вы должны увидеть результат нашей программы.
Обратите внимание, что первая строка указывает какой интерпритатор мы будет использовать, она необходима если мы хотим запускать нашу команду с интерпритатором по умолчанию, например так: .. code:: sh
Если этой строки не будет, то мы получим ошибку.
Вторая строка отвечает за кодировку, тоесть если мы хотим вывести на экран Русские символы, то нам надо указать какую кодировку мы будем ипользовать.
© Copyright 2020, Oleg Kishinskii Revision 87b11443 .
Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions latest Downloads pdf html epub On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.
Управление необходимыми пакетами Python с помощью requirements.txt
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Если вы предоставляете доступ к проекту другим, используете систему сборки или планируете скопировать проект в другое расположение, где нужно восстановить среду, то необходимо указать внешние пакеты, необходимые проекту. Рекомендуется использовать файл requirements.txt (readthedocs.org), содержащий список команд для pip, который устанавливает необходимые версии зависимых пакетов. Наиболее распространенной является команда pip freeze > requirements.txt , которая записывает текущий список пакетов среды в файл requirements.txt.
Технически для отслеживания требований можно использовать любой файл (используя -r при установке пакета), но Visual Studio имеет встроенную поддержку requirements.txt:

- Если вы загрузили проект, содержащий файл requirements.txt, и хотите установить все указанные в нем пакеты, разверните узел Среды Python в обозревателе решений, щелкните правой кнопкой мыши узел среды и выберите Установить из файла requirements.txt:
- Если вы хотите установить зависимости в виртуальном окружении, сначала создайте и активируйте окружение, а затем воспользуйтесь командой Установка из файла requirements.txt. Дополнительные сведения о создании виртуального окружения см. в статье Выбор окружения Python для проекта.
- Если в среде установлены все необходимые пакеты, можно щелкнуть среду правой кнопкой мыши в обозревателе решений и выбрать Создать файл requirements.txt, чтобы создать необходимый файл. Если файл уже существует, отображается запрос с вариантами обновления:



- Replace entire file (Заменить весь файл) удаляет все существующие элементы, комментарии и параметры.
- Обновить существующие записи определяет требования к пакету и обновляет описатели версии в соответствии с установленной версией.
- Update and add entries (Обновить и добавить записи) обновляет имеющиеся требования и добавляет все другие пакеты в конец файла.
Файлы requirements.txt содержат точные версии всех установленных пакетов, и вы можете использовать эти файлы, чтобы зафиксировать требования окружения. Такие версии позволяют легко воспроизвести ваше окружение на другом компьютере. Файлы с требованиями включают пакеты, даже если они были установлены с диапазоном версий, как зависимость от другого пакета или с установщиком, отличным от pip.
Если pip не удается установить пакет, указанный в файле requirements.txt, установка завершается сбоем. В этом случае нужно вручную исключить этот пакет из файла или использовать параметры pip для указания ссылки на устанавливаемую версию пакета. Например, можно использовать pip wheel для компиляции зависимости и добавления параметра —find-links в файл requirements.txt:
C:\Project>pip wheel azure Downloading/unpacking azure Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure Building wheels for collected packages: azure Running setup.py bdist_wheel for azure Destination directory: c:\project\wheelhouse Successfully built azure Cleaning up. C:\Project>type requirements.txt --find-links wheelhouse --no-index azure==0.8.0 C:\Project>pip install -r requirements.txt -v Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3)) Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl Installing collected packages: azure Successfully installed azure Cleaning up. Removing temporary dir C:\Project\env\build.
Связанный контент
- Управление окружениями Python в Visual Studio
- Выбор интерпретатора для проекта
- Пути поиска
- Справочная информация по окну «Окружения Python»