2010-11-16 12 views
15

Me he topado con pexpect y mi impresión es que se parece más o menos a fabric. He intentado encontrar alguna comparación, sin éxito, así que estoy preguntando aquí, en caso de que alguien tenga experiencia con ambas herramientas.fabric vs pexpect

¿Es correcta mi impresión (que son aproximadamente equivalentes) o simplemente se ve en la superficie?

Respuesta

14

He usado ambos. Fabric es más alto nivel que pexpect, y en mi humilde opinión mucho mejor. Depende de para qué lo utilice, pero si su uso es implementación y configuración de software, Fabric es el camino correcto.

+1

Estoy de acuerdo con Jon. Solía ​​usar pexpect, pero ahora realizo estas tareas con tela y ocasionalmente http://codespeak.net/execnet/ –

+0

¡Gracias por las respuestas! –

+1

"Depende de lo que lo esté usando", ¿hay algún área donde pexpect sobresalga sobre la tela? – osmosis

4

Existen casos de uso diferentes para ambos. Algo que pexpect hace que Fabric no está conservando el estado. Cada comando Fabric api (por ejemplo: run/sudo) es su propio comando individual. Por lo tanto, si lo hace:

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

Esto no estará en ese directorio ni en el directorio virtual. Si bien ahora hay administradores de contexto para cd() en Fabric, están más o menos antepuestos a cada ejecución con un cd.

En el esquema de las cosas esto tiene poco que ver con la forma en que la mayoría de los proyectos funcionan, y es esencialmente inadvertido. Sin embargo, para algunas necesidades, puede usar pexpect para administrar este estado, para múltiples sudos o algún tipo de tarea interactiva que no pueda automatizarse con banderas.

Todo esto, aunque no es una desventaja para Fabric, ya que solo es python, es más que capaz de incluir código pexpect dentro de las tareas de fabric.

Aunque en todos los demás aspectos, Fabric maneja esencialmente todo el trabajo duro de las conexiones remotas y la ejecución de comandos mejor de lo que obtendría al escribir código desde cero con pexpect.

actualización He sido informado de un proyecto que trabaja con tela y pexepect, se puede ver más sobre este question's answer

Cuestiones relacionadas