Подтвердить что ты не робот

Ткань против pexpect

Я наткнулся на pexpect, и мое впечатление, что оно выглядит примерно так же, как ткань. Я попытался найти какое-то сравнение без успеха, поэтому я прошу здесь - на случай, если у кого-то есть опыт работы с обоими инструментами.

Является ли мое впечатление (что они примерно эквивалентны) правильным, или просто как оно выглядит на поверхности?

4b9b3361

Ответ 1

Я использовал оба. Ткань более высокий уровень, чем pexpect, и IMHO намного лучше. Это зависит от того, для чего вы его используете, но если вы используете развертывание и настройку программного обеспечения, то Fabric - это правильный путь.

Ответ 2

Вы также можете комбинировать их, чтобы иметь лучшее из обоих миров, возможности для удаленной работы с материалами и возможность просмотра подсказок. Посмотрите на эти ответы: fooobar.com/questions/246969/... и fooobar.com/questions/246988/...

Ответ 3

Существуют разные варианты использования для обоих. Что-то, что pexpect делает, что ткань не сохраняет состояние. Каждая команда api Fabric (например: run/sudo) - это собственная индивидуальная команда. Итак, если вы это сделаете:

run("cd project_dir && workon project")
run("make")

Это не будет в этом каталоге и не будет в virtualenv. Хотя в настоящее время существуют контекстные менеджеры для cd() в Fabric, они более или менее предваряют каждый запуск с помощью cd.

В схеме вещей это мало влияет на то, как работает большинство проектов, и практически незаметно. Однако для некоторых потребностей вы можете использовать pexpect для управления этим состоянием, для нескольких sudos или какой-то интерактивной задачи, которая не может быть автоматизирована с помощью флагов.

Все это, однако, не является недостатком для Fabric, поскольку это всего лишь python, вы можете включить код pexpect внутри задач в теневой структуре.

Несмотря на то, что Fabric по существу управляет всей сложной работой удаленных соединений и работает командами лучше, чем вы получаете код с нуля с pexpect.

Обновить. Мне сообщили о проекте, который работает с Fabric и pexepect, вы можете узнать больше об этом вопросе p >