Как создать txt-файл требований python
Обновлено: 21.11.2024
PyCharm обеспечивает интеграцию с основными средствами управления требованиями и позволяет отслеживать неудовлетворенные требования в ваших проектах и создавать виртуальную среду на основе файла requirements.txt.
Определить требования
В меню "Инструменты" выберите "Синхронизировать требования Python" .
В открывшемся диалоговом окне укажите имя файла требований. Рекомендуемое имя файла требований — requirements.txt . Когда файл с таким именем добавляется в корневой каталог проекта, он автоматически обнаруживается встроенными инструментами Python.
Выберите метод обработки версий необходимых библиотек. Номера версий можно определить:
Больше или равно
Определите политику управления требованиями:
Удалить неиспользуемые требования
Удаляет записи, соответствующие неиспользуемым библиотекам и пакетам.
Изменить базовые файлы
Разрешает вносить изменения в файлы базовых требований (если они упоминаются в файле requirements.txt).
Сохранить существующий спецификатор версии, если он соответствует текущей версии
Оставляет номер версии без изменений, если он соответствует выбранной обработке версий метода.
Нажмите "ОК" и проверьте созданный файл.
Если имя файла требований отличается от requirements.txt или у вас есть несколько файлов требований в одном проекте, вы должны уведомить PyCharm о файле требований, который вы хотите применить.
Настройте файл требований по умолчанию
Нажмите Ctrl+Alt+S, чтобы открыть настройки IDE, и выберите Инструменты | Интегрированные инструменты Python.
В поле Файл требований к пакету введите имя файла требований или нажмите кнопку обзора и найдите нужный файл.
Нажмите "ОК", чтобы сохранить изменения.
Хотя вы всегда можете запустить Sync Python Requirements для обновления файла требований, PyCharm предоставляет быстрые исправления, которые позволяют заполнить этот файл.
Обновить файл требований
В операторе импорта файла Python щелкните пакет, который еще не импортирован. PyCharm предлагает быстрое решение:
Выберите и примените предложенное быстрое исправление. Пакет добавляется в файл управления зависимостями.
PyCharm предоставляет быстрые исправления и уведомления, связанные с неудовлетворенными зависимостями.
Установите необходимые пакеты
Панель уведомлений отображается, когда включена проверка неудовлетворенных требований к пакету. Вы можете включить его в Preferences/Settings | Редактор | Диалоговое окно проверок.
Откройте проект с указанным файлом требований, панель уведомлений отображается поверх любого файла Python или требований, открытого в редакторе:
Нажмите на одну из предоставленных ссылок, чтобы удовлетворить или проигнорировать требования.
Если вы выбрали вариант «Игнорировать», вы всегда можете передумать и удалить пакет из списка игнорируемых пакетов.
Добавить игнорируемые зависимости
Нажмите Ctrl+Alt+S, чтобы открыть настройки/настройки проекта.
Перейти к редактору | Инспекции .
В списке проверок выберите Неудовлетворенные требования к пакету.
Просмотрите список игнорируемых требований и нажмите значок "Добавить" (), чтобы добавить их.
Иногда я загружаю исходный код Python с github и не знаю, как установить все зависимости. Если файла requirements.txt нет, мне приходится создавать его вручную.
Вопрос:
Учитывая каталог с исходным кодом Python, возможно ли автоматически создать файл requirements.txt из раздела импорта?
Вы можете сделать это, запустив pip freeze > requirements.txt, и все ваши библиотеки Python с текущей версией будут сохранены в файл requirements.txt
@Shaikhul, но это не поможет, если у вас не установлены зависимости, потому что вы только что скачали пакет с GitHub.
Обратите внимание: а) заморозка pip создаст дамп текущих версий всех установленных модулей в этой системе, независимо от их использования в текущем проекте. б) pip будет отображать только те модули, которые были установлены через pip
@akskap, какие способы установки модулей не используются? setup.py установить? Будут ли пипреки их игнорировать?
19 ответов 19
Вы можете использовать следующий код для создания файла requirements.txt:
дополнительную информацию о pipreq можно найти здесь.
Иногда вы сталкиваетесь с заморозкой pip , но при этом сохраняются все пакеты в среде, включая те, которые вы не используете в текущем проекте.
@IgorBarinov это предупреждение, и это не создаст проблем для запуска pipreqs, я установил его на python 2.6 и получил такое же предупреждение, но он создает файл requirements.txt, спасибо @DJanssens
Я использовал pipreqs, и мне нужно было указать используемую кодировку в отсканированной папке проекта, иначе я получил ошибку, сгенерированную pipreqs: pipreqs --encoding utf-8
Для улучшения процесса разработки рекомендуется использовать Pipenv или другие инструменты.
Если вы не используете виртуальную среду, вам подойдет pigar.
Я выполняю pip3 freeze > requirements.txt и с удивлением не нахожу некоторые пакеты, которые на самом деле использую, такие как argparse и configparser . Это потому, что они являются частью ядра Python? Я считаю, что лучшим ответом будет использование pipreqs ниже, потому что в нем будут перечислены только требования, которые использует ваш проект.
@damnever Хорошо, спасибо! pip3 freeze дает мне список всех пакетов Python, установленных в моей среде, тогда как pipreqs дает мне все те, которые фактически используются в моем исходном коде, что я и искал. Кроме того, в этом нет ничего плохого.
В моем случае я использую Anaconda, поэтому выполнение следующей команды из терминала conda внутри моей среды решило проблему и автоматически создало для меня этот файл requirements.txt:
Это взято из этой ссылки Github pratos/condaenv.txt
Если возникла ошибка и вы используете anaconda, попробуйте использовать параметр .yml:
Для использования среды другим человеком или если вы создаете новую среду на другом компьютере:
Это действительно работает? Всякий раз, когда я пробовал это, есть зависимости и особенности синтаксиса, которые отвергает pip install requirements.txt.
Я обнаружил несколько ошибок при использовании .txt, поэтому просто добавил другой вариант, который мне тоже подошёл. "Использование файла .yml", упомянутого выше.
Для python3: (на моей машине есть и python 2, и python 3, где python2 используется по умолчанию)
Чтобы проверить версию Python:
@Tirbo06 Я также добавил версию python2 и команду для проверки установленной версии python :)
Чтобы создать список обязательных модулей Python, напишите этот код в своем терминале:
Во-первых, ваш файл проекта должен быть файлом py, который является прямым файлом python. Если ваш файл имеет формат ipynb, вы можете преобразовать его в тип py, используя следующую строку кода:
Затем вам необходимо установить библиотеку pipreqs из cmd (терминал для Mac).
Теперь мы можем создать текстовый файл, используя приведенный ниже код. Если вы находитесь на том же пути, что и ваш файл, вы можете просто написать ./ . В противном случае вам нужно указать путь к вашему файлу.
Это создаст файл requirements.txt для вашего проекта.
Вы можете попробовать удалить и установить nbconvert, используя: pip uninstall nbconvert pip install nbconvert @koppor
Я слепо следовал принятому ответу об использовании заморозки pip3 > requirements.txt
Он создал огромный файл со списком всех зависимостей всего решения, а это не то, что мне нужно.
Поэтому вам нужно выяснить, какой именно файл requirements.txt вы пытаетесь сгенерировать.
Если вам нужен файл requirements.txt со ВСЕМИ зависимостями, используйте файл pip3
Однако, если вы хотите создать файл с минимальными требованиями.txt, в котором перечислены только необходимые вам зависимости, используйте пакет pipreqs. Особенно полезно, если у вас есть несколько файлов requirements.txt на уровне компонентов в проекте и ни одного файла на уровне всего решения.
Обязательно запустите pip3 для python3.7.
Перед выполнением вышеуказанной команды убедитесь, что вы создали виртуальную среду.
python3:
питон2:
После этого поместите исходный код в каталог. Если вы сейчас запустите файл python, возможно, он не запустится, если вы используете неродные модули. Вы можете установить эти модули, запустив pip3 install или pip install .
Это не повлияет на весь список модулей, кроме среды, в которой вы находитесь.
Теперь вы можете выполнить команду вверху, и теперь у вас есть файл требований, который содержит только те модули, которые вы установили в виртуальной среде. Теперь вы можете запустить команду сверху.
Я советую всем использовать окружения, так как это упрощает работу с такими вещами.
Удивительно, насколько эта простая задача настолько сложна в Python. Вот что я думаю, это лучший способ сделать это автоматически.
Вам нужны два инструмента:
pip3 установить pipreqs
pipreqs пройдет через ваш проект и установит только те пакеты, которые используются в вашем проекте. Вместо всех пакетов в вашей среде Python, как это сделало бы замораживание pip.
Но с этим подходом есть проблема. Подпакеты не устанавливаются.
Например, в вашем проекте используется pandas==1.3.2 . Сам pandas использует numpy==1.21.2 среди других пакетов. Но сам pipreqs не записывает подпакеты (т.е. numpy) в requirments.txt
Здесь вам нужно объединить pipreqs со вторым инструментом.
pip3 установить pip-tools
pip-tools возьмет пакеты в файле requirements.in и сгенерирует файл requirements.txt со всеми вложенными пакетами. Например, если у вас есть pandas==1.3.2 в requirements.in , pip-tools сгенерирует
Но вам нужно вручную добавить пакет в requirements.in . Что может привести к ошибкам, и вы можете забыть сделать это время от времени.
Здесь вы можете использовать первый инструмент.
Но оба инструмента пишут в файл requirements.txt . Так как же это исправить?
Используйте параметр --savepath для pipreqs для записи в файл requirements.in вместо файла requirements.txt по умолчанию.
Чтобы сделать это одной командой; просто сделай
pipreqs --savepath=requirements.in & pip-compile
Вот так. Теперь вам не нужно беспокоиться о ручном обслуживании пакетов, а файл requirements.txt будет содержать все подпакеты, чтобы ваша сборка была детерминированной.
TL;DR
- pip3 установить pipreqs
- pip3 установить pip-tools
Используйте следующее для создания детерминированного файла requirements.txt
pipreqs --savepath=requirements.in && pip-compile
Если вы столкнулись с той же проблемой, что и у меня, то есть не в виртуальной среде, и вам нужен файл requirements.txt для определенного проекта или из выбранной папки (включая дочерние элементы), а pipreqs не поддерживает.
Вы можете использовать:
P.S. У него может быть несколько дополнительных библиотек, так как он проверяет нечеткую логику.
лучший способ для Python 3:
мне помогло.
Если в вашей системе установлено много зависимостей и вам нужен файл requirements.txt для конкретного проекта, вы можете сначала установить pipreqs:
и выполните приведенную ниже команду в папке проекта.
Эта команда создаст файл requirements.txt для конкретного проекта.
Чтобы получить список всех ТРЕБОВАНИЙ в стандартном файле requirements.txt, вы можете использовать следующую команду.
Теперь это должно автоматически создать стандартный файл требований со всеми установленными пакетами вместе с соответствующими версиями.
Красивая печать на терминале
Если вы просто хотите получить красивый отпечаток на терминале, вы можете использовать следующий подход.
Здесь перечислены все установленные пакеты в удобном для печати формате.
Использование
Содержание файла requirements.txt
При разработке приложения Python с файлом requirements.txt у нас есть несколько вариантов:
- Создайте файл requirements.txt после разработки, когда мы хотим его развернуть. Это выполняется путем заморозки пипсов > requirements.txt или pipreqs, чтобы результат был менее запутанным.
- Добавляйте каждый модуль в файл requirements.txt вручную после каждой установки.
- Установите диспетчер, который будет обрабатывать обновления файла requirements.txt.
Для 1-го варианта есть много ответов, 2-й вариант говорит сам за себя, поэтому я хотел бы описать 3-й подход. Существует библиотека с именем to-requirements.txt. Чтобы установить его, введите следующее:
Если бы вы прочитали всю команду сразу, вы бы увидели, что она делает. После установки вы должны настроить его. Выполнить:
Он переопределяет сценарии pip, так что каждая установка pip или удаление pip автоматически обновляет файл requirements.txt вашего проекта с необходимыми версиями пакетов. Переопределение сделано безопасно, так что после удаления этого пакета пипс будет вести себя как обычно.
И вы можете настроить его работу. Например, отключить его глобально и активировать только для необходимых каталогов, активировать только для git-репозиториев или разрешить/запретить создание файла requirements.txt, если он не существует.
При разработке приложений Python нам приходится использовать множество модулей для различных функций. Количество модулей, используемых приложением, может быть большим. Как правило, при разработке таких гигантских приложений и даже небольших приложений рекомендуется создавать виртуальную среду, специфичную для проекта, поскольку она позволяет нам устанавливать все, что мы хотим, и любую версию, не переполняя глобальное пространство пакета.
Если наши друзья, семья или коллеги захотят использовать разработчика в своей системе, им также потребуется установить код и зависимости на их стороне. Поскольку зависимости устанавливаются в виртуальной среде, совместное использование всей виртуальной среды не имеет смысла, поскольку размер папки будет огромным, и они могут столкнуться с ошибками из-за проблем с целостностью.
В таких случаях разработчики добавляют в проект файл requirements.txt, содержащий список всех зависимостей, установленных в виртуальной среде, и сведения об используемой версии. Таким образом, заемщику или конечному пользователю нужно только создать виртуальную среду и установить зависимости для использования приложения.
Эта статья поможет нам создать файл requirements.txt и установить зависимости из файла requirements.txt.
Создайте файл requirements.txt с помощью установщика пакетов pip
Чтобы сгенерировать файл requirements.txt, мы можем использовать установщик пакетов pip или систему управления пакетами из командной строки. Обратитесь к следующим командам для того же.
В случае, если вместо pip вы используете диспетчер пакетов conda, вы можете использовать следующую команду для создания файла requirements.txt.
Установка зависимостей из файла requirements.txt с помощью установщика пакетов pip
После того, как мы сгенерировали требования.txt, мы можем использовать этот файл для установки всех упомянутых в нем зависимостей. Обратитесь к следующей команде для того же.
- Создайте виртуальную среду.
- Активируйте виртуальную среду.
- Установите зависимости.
То же самое можно найти в следующих командах.
Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».
Статья по теме — Установка Python
сообщить об этом объявлении
В этом руководстве мы увидим, как автоматически создавать файл requirements.txt в Python.
Мы рассмотрим 3 различных способа автоматической генерации зависимостей:
- заморозка пунктов > требования.txt — самые общие. Нет необходимости в дополнительной установке.
- dephell deps add --from=Pipfil — требуется дополнительная библиотека. Он может генерировать зависимости для одного скрипта Python
- pipreqs /path/to/project — требуется дополнительная библиотека. Разрешить настройку, чтобы извлечь требования, относящиеся к данной папке.
Пример 1. Создание файла requirements.txt путем заморозки пипсов
Создание файла requirements.txt для проекта Python с виртуальными средами:
Перед запуском команды убедитесь, что:
- виртуальные среды активированы
- команда будет выполнена в той же папке, что и проект
Файл requirements.txt с зависимостями Python будет создан в той же папке, что и выполнение.
Если вы используете эту команду, все требования будут собраны из виртуальной среды. Если вам нужно, чтобы требования использовались только в текущем объеме проекта, вам нужно проверить следующие параметры.
Пример 2. Автоматическое создание файла requirements.txt с помощью dephell — для одного скрипта Python
Dephell — хороший вариант для автоматического создания файла requirements.txt, если:
- ваш проект не использует виртуальные среды
- создавать их только для одного скрипта для более крупного проекта Python
Дополнительная информация об этом пакете:
Dephell устанавливается двумя способами:
Как сгенерировать требования для одного скрипта Python? Это можно сделать командой:
- requirements.txt — выходной файл
- my_script.py — это файл, для которого будет создан список зависимостей
Структура проекта может быть следующей: ../project/src/my_script.py — вам нужно запустить команду из папки: src .
Еще один вариант — использовать импорт, например:
--from – путь или формат для чтения требований. Если это формат, то dephell просканирует текущий каталог, чтобы найти файл, который может быть проанализирован этим конвертером. Если это имя файла, то dephell автоматически определит формат файла.
Пример 3. Автоматическое создание файла requirements.txt с помощью pipreqs
Другой альтернативой является pipreqs . Более подробная информация доступна по этой ссылке: github pipreqs.
Сначала пакет необходимо установить:
Создание всех зависимостей с помощью:
Примечание Зачем использовать pipreqs? Потому что заморозка пипсов соберет все зависимости от сред. Пока pipreqs будет собирать требования, используемые только в текущем проекте!
При работе над любым проектом Python или проектом по науке о данных важно всегда работать в среде, которая делает ваш проект многоразовым и повторяемым без каких-либо проблем для тех, кто возьмется за ваш проект в будущем.
Это даже поможет вам самим, когда вы вернетесь к своему проекту в будущем. Одним из способов решения этой проблемы является использование виртуальной среды. Причина в том, что существует два основных типа пакетов и мест, где находятся ваши библиотеки Python, и вам не нужны все эти пакеты при работе над определенным проектом, поэтому необходимо знать, какой из них требуется для каждого проекта, чтобы упростить воспроизводимость. К ним относятся
- Системные пакеты, являющиеся частью стандартной библиотеки Python
- Пакеты сайта (сторонние пакеты), которые вы устанавливаете с помощью pip.
Так что же такое виртуальная среда?
Виртуальная среда — это изолированное рабочее пространство, в котором ваши пакеты хранятся отдельно от вашей локальной (основной) установки системы. Это позволяет вам создавать «виртуальную» изолированную среду для каждого проекта Python. Это облегчает независимость каждого проекта от другого проекта, особенно если они имеют одни и те же зависимости. Существуют различные пакеты, которые можно использовать для создания виртуальной среды. Среди них
Теперь, после создания виртуальной среды для вашего проекта, как вы получаете установленные пакеты и библиотеки? В виртуальной среде довольно легко получить именно те пакеты, которые вы использовали в этом проекте. Посмотрим, как.
Работа с Virtualenv
Virtualenv — это библиотека, позволяющая создавать виртуальную среду. Чтобы установить и работать с ним, вы можете просто сделать
Создайте новый рабочий каталог для вашего проекта
Создайте новую виртуальную среду внутри нового каталога проекта
Чтобы использовать эту изолированную среду, вам необходимо активировать ее с помощью исходного кода
Вы заметите изменение в своем приглашении с префиксом любого имени, которое вы использовали для своей виртуальной среды
Чтобы установить любой пакет или библиотеку для вашего текущего проекта, вы можете использовать pip3 или pip
Как получить файл Requirements.txt: с помощью Virtualenv
Теперь, чтобы иметь возможность получить файл requirements.txt, вы можете использовать команду заморозка pip или заморозка pip3 (python3), как показано ниже
Как получить файл Requirements.txt: с помощью Pipenv
Pipenv – это еще и отличная библиотека для создания виртуальной среды с некоторыми интересными функциями. Для работы с ним вы можете использовать
Во-первых, это намного проще, а также автоматически отслеживает все библиотеки, используемые для проекта, в файле Pipfile и файле Pipfile.lock. Эти файлы играют ту же роль, что и файл requirements.txt, а также некоторые дополнительные функции.
Следовательно, вы можете использовать его вместо вашего файла requirements.txt. Но если вам нужен файл requirements.txt, вы можете использовать
Как получить файл Requirements.txt: без VirtualEnv с помощью Pipreqs
Pipreqs — это еще одна простая альтернатива использованию, которая не требует предварительного создания виртуальной среды. Это весьма полезно, если вам нужны только пакеты и библиотеки, используемые в приложении или скрипте, который вы использовали.
Он автоматически сканирует файл или скрипт Python на наличие импортированных библиотек, а затем создает файл requirements.txt. Давайте посмотрим, как с ним работать
Чтобы получить файл requirements.txt, вы можете запустить pipreqs и указать его в своей папке с файлом python
Это так просто, верно?
Что делать, если вы работаете с conda или pipenv. Pipreqs упрощает работу, и вы можете использовать его таким образом.
Читайте также: