Как создать requirements.txt файл для python программы
Требование наличия в корне файла requirements.txt — достаточно распространенное среди заказчиков. Это и не удивительно — ведь для того чтобы быстро установить все требуемые библиотеки python в новом окружении достаточно выполнить команду pip install -r requirements.txt .
Рассмотрим несколько вариантов.
Вариант первый — вручную. Минусы думаю объяснять не надо, мало того что вы можете ошибиться в названиях и версиях, но также легко и пропустить библиотеку.
requirements.txt в Python. Установка и версионирование зависимостей.
В своих проектах на Python я конечно пользуюсь сторонними пакетами. Их легко установить с помощью pip install, но что делать если проект нужно распространять или показывать все в видео (как делаю я на своем канале Azzrael Code). Или если нужно чтобы в проекте использовались пакеты нужных версий.
В стандартном менеджере пакетов pip, который идет в комплекте с установочными пакетом Python, есть возможность перечислить необходимые пакеты в файле requirements.txt . И не просто перечислить, а также указать какие конкретно версии пакетов нужны (или даже выбрать диапазон версий, или исключить какие-то версии). А затем установить все эти пакеты одной командой python -m pip install -r requirements.txt. Подробнее о том как я использую requirements.txt в видео:
Как создать requirements.txt
Кстати совсем не обязательно называть файл с зависимостями именно requirements.txt. Можно использовать любое имя. А requirements.txt просто общепринятое название, ну и IDE могут ожидать такого именования.
Как установить зависимости с использованием requirements.txt
Документация по requirements.txt
Если у вас есть вопросы или есть мнения как сделать лучше, то пишите в комментария к
Как использовать файл requirements.txt для установки всех зависимостей в проекте Python
Я новичок в питоне. Недавно я получил проект, написанный на Python, и он требует некоторой установки. Я запускаю команду ниже для установки, но получаю ошибку.
Я искал в Google и нашел эту ссылку, http://stackoverflow.com/questions/28167987/python-pip-trouble-installing-from-requirements-txt но я не совсем понимаю, какое решение в этом сообщении.
Ниже мой файл requirements.txt:
Есть ли простой способ установить все необходимые зависимости в этом проекте Python?
РЕДАКТИРОВАТЬ1
Ниже представлен результат работы pip3 install -r requirements.txt .
Я уже установил, libfreetype6-dev но команда pip по-прежнему сообщает об отсутствии этой зависимости.
Автоматически создавать requirements.txt
Иногда я загружаю исходный код Python из github и не знаю, как установить все зависимости. Если нет requirements.txt файл я должен создать его руками. Возникает вопрос: учитывая каталог исходного кода Python, можно ли создать requirements.txt автоматически из раздела импорта?
- 4 Вы можете сделать это, запустив pip freeze > requirements.txt сохранит все ваши библиотеки Python с текущей версией в requirements.txt файл
- 10 @Shaikhul, но это не помогает в случае, если у вас не установлены зависимости, потому что вы только что загрузили пакет с GitHub .
- 11 Обратите внимание: а) pip freeze сбросит текущие версии all установленные модули в этой системе независимо от их использования в текущем проекте. б) pip будет перечислять только модули, которые были установлены через pip
- 1 Возможный дубликат Как создать файл requirements.txt?
Если вы используете виртуальную среду, pip freeze > requirements.txt просто хорошо. ЕСЛИ НЕ, пигар станет для вас хорошим выбором.
Кстати, я не уверен, что он будет работать с 2.6.
ОБНОВИТЬ:
Для улучшения процесса разработки рекомендуется использовать Pipenv или другие инструменты.
За Python 3 используйте ниже
- 6 Всем, кто ошибается, рекомендую попробовать pip3 freeze > requirements.txt прежде чем задать вопрос.
- 3 Я выполняю pip3 freeze > requirements.txt и я удивлен, что не нашел некоторых пакетов, которые я действительно использую, например argparse и configparser . Это потому, что они являются частью ядра Python? Я считаю, что лучший ответ — использовать pipreqs ниже, потому что в нем будут перечислены только требования, которые использует ваш проект.
- 22 @dam Never Хорошо, спасибо! pip3 freeze дает мне список всех пакетов Python, установленных в моей среде, тогда как pipreqs дает мне все, что действительно используется в моем исходном коде, что я и искал. Кроме того, в этом нет ничего плохого.
- 2 pipenv имеет серьезные проблемы, см. Это обсуждение: news.ycombinator.com/item?id=18612590
- 2 Трубопровод в requirements.txt может быть довольно плохой идеей.
Вы можете использовать следующий код для создания файла requirements.txt:
дополнительную информацию о pipreqs можно найти здесь.
Иногда попадаешься pip freeze , но при этом сохраняются все пакеты в среде, включая те, которые вы не используете в текущем проекте.
- 1 @IgorBarinov это предупреждение и не создаст проблемы для запуска pipreqs , Я установил его на python 2.6 и получил такое же предупреждение, но он создает requirements.txt файл, спасибо @DJanssens
- 1 @Shaikhul, если вы получили эти предупреждения, у вас не будет полного файла, вы просто получите часть требований. Вы можете проверить это в репозитории github.com/npow/MemNN/tree/hyperopt. У меня только 'hyperopt == 0.0.2 numpy == 1.9.2 scikit_learn == 0.16.1 theano == 0.7.0'
- 1 который сказал it is strongly recommended to upgrade to a newer Python version
- 1 Это не работает для Python 3.6, если формат вывода нового оператора печати — uesd.
- 3 Это должен быть принятый ответ. 1) Это проще, чем pip freeze . 2) Он фактически решает вопрос, заданный OP (в отличие от pip freeze , который записывает только установленные пакеты).
В моем случае я использую Anaconda, поэтому выполнение следующей команды с терминала conda внутри моей среды решило эту проблему и автоматически создало для меня этот файл требований txt:
Это было взято из этой ссылки Github pratos / condaenv.txt
Если произошла ошибка, и вы используете anaconda, попробуйте использовать опцию .yml:
Чтобы другой человек мог использовать среду . Или, если вы создаете новую среду на другом компьютере: conda env create -f .yml
Здесь найден вариант .yml
- если вы не используете виртуальную среду, это создаст слишком длинный файл requirements.txt
- 1 Это действительно работает? Всякий раз, когда я пробовал это, есть зависимости и особенности синтаксиса, которые pip install requirements.txt отклоняет.
- Я обнаружил некоторые ошибки, используя .txt, поэтому просто добавил другой вариант, который тоже работал со мной . "Использование .yml", упомянутого выше.
Обязательно запустите pip3 для python3.7.
Перед выполнением указанной выше команды убедитесь, что вы создали виртуальную среду.
python3:
python2:
После этого поместите исходный код в каталог. Если вы запустите файл python сейчас, вероятно, он не запустится, если вы используете неродные модули. Вы можете установить эти модули, запустив
Это не повлияет на весь список модулей, кроме среды, в которой вы находитесь.
Теперь вы можете выполнить команду вверху, и теперь у вас есть файл требований, который содержит только модули, которые вы установили в виртуальной среде. Теперь вы можете запустить команду вверху.
Я советую всем использовать среды, так как они упрощают работу с подобными вещами.
Надеюсь, это помогло.
лучший способ для Python 3:
это сработало для меня .
Если вы столкнулись с той же проблемой, что и моя, т.е. не в виртуальной среде и хочет файл requirements.txt для конкретного проекта или из выбранная папка (включая детей) и pipreqs не поддерживает.
Вы можете использовать :
P.S: У него может быть несколько дополнительных библиотек, поскольку он проверяет fuzzylogic.
Не полное решение, но может помочь составить короткий список для Linux.
Во-первых, ваш файл проекта должен быть файлом py, который является прямым файлом python. Если ваш файл находится в формате ipynb, вы можете преобразовать его в тип py, используя следующую строку кода:
Затем вам нужно установить библиотеку pipreqs из cmd (терминал для Mac).
Теперь мы можем создать текстовый файл, используя приведенный ниже код. Если вы находитесь на том же пути, что и ваш файл, вы можете просто написать ./. В противном случае вам нужно указать путь к вашему файлу.
Это создаст файл requirements.txt для вашего проекта.
если вы используете PyCharm, когда вы открываете или клонируете проект в PyCharm, он показывает предупреждение и просит вас установить все необходимые пакеты.