Я устанавливаю пакеты из requirements.txt
pip install -r requirements.txt
requirements.txt
Файл гласит:
Pillow
lxml
cssselect
jieba
beautifulsoup
nltk
lxml
- единственный пакет, который не удается установить, и это приводит к сбою всего (ожидаемые результаты, как указано larsks в комментариях). Однако после lxml
сбоя pip
все еще запускается и загружает остальные пакеты.
Насколько я понимаю, pip install -r requirements.txt
команда завершится ошибкой, если какой-либо из пакетов, перечисленных в списке, requirements.txt
не удалось установить.
Есть ли аргумент, который я могу передать при запуске, pip install -r requirements.txt
чтобы сказать ему установить то, что он может, и пропустить пакеты, которые он не может, или выйти, как только он увидит, что что-то не работает?
requirements.txt
нем, вероятно, требуется , поэтому имеет смысл, чтоpip
это не удастся, если пакет не может быть установлен. Если код все равно работает без этого пакета, то это вряд ли является обязательным требованием. Случайное удаление неудачных пакетов,requirements.txt
похоже, просто вызовет проблемы с отсутствующими зависимостями.pip install -r <some file>
рабочий процесс для стандартизации создания соответствующей среды.Ответы:
Запуск каждой строки с помощью
pip install
может быть обходным путем.Примечание:
-a
параметр недоступен в MacOS, поэтому старый кот более переносим.источник
cat requirements.txt | xargs -n 1 pip install
cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install
убрать что-нибудь в комментариях и избавиться от пустых строк.xargs
есть-a
опция флага, которая позволяетxargs
читать аргументы из файла, так что это можно сделать какxargs -n 1 -a requirements.txt pip install
. Предотвращает УУОК и чрезмерную сантехникуFOR /F %k in (requirements.txt) DO pip install %k
-a
флага, рассмотрит< requirements.txt xargs -n 1 pip install
, или если вам не нравится , перенаправление на фронтеxargs -n 1 pip install < requirements.txt
. :-)Это решение обрабатывает пустые строки, строки с пробелами, # строки комментариев, строки с пробелами и # строками комментариев в файле requirements.txt.
Подсказка к этому ответу для магии sed.
источник
pip freeze
вместоcat requirements.txt
.Для Windows:
версия пункта> = 18
версия пункта <18
источник
xargs
работах решения , но могут иметь проблемы с переносимостью (BSD / GNU) и / или быть громоздкой , если у вас есть комментарии или пустые строки в файле требования.Что касается варианта использования, в котором может потребоваться такое поведение, я использую, например, два отдельных файла требований, один из которых содержит только список основных зависимостей, которые необходимо всегда устанавливать, а другой файл с неосновными зависимостями, которые присутствуют в 90% случаев. не требуется для большинства сценариев использования. Это было бы эквивалентом
Recommends
раздела пакета debian.Я использую следующий сценарий оболочки (требуется
sed
) для установки дополнительных зависимостей :источник
Спасибо, Этьен Протон, за чехлы для окон.
Но после обновления до pip 18 пакет pip не раскрывает main для публики. Таким образом, вам может потребоваться изменить такой код.
источник
Для Windows:
requirements.txt
в него файл..py
расширение, например,install_packages.py
python install_packages.py
Вы можете добавить другие параметры в функцию установки. Подобно:
main(['install'] + [str(package)] + ['--update'])
источник