Выполнение команды local () в Fabric в Windows - PullRequest
2 голосов
/ 18 января 2012

Я заметил странное поведение в команде local () в Windows с момента обновления Fabric (что я и сделал, потому что local не работал).Соответствующий фрагмент моего файла выглядит следующим образом:

env.hosts = ['server.com:22'] # One or multiple server addresses in format ip:port
env.path = '/code'
env.apache_path = '/apache'
env.user = 'user'
env.prj_name = 'user'
env.password = 'password'

def test():
    local('python manage.py test measurements temperature results', capture=False)

Запуск fab test, используемый для запуска типичного набора тестов Django.Это все еще на моем Mac.В Windows он теперь утверждает, что запускает команду, а затем останавливается без какого-либо реального тестирования.Если я перемещу информацию env в команду (или просто удаляю ее), fab test работает как положено.Должно ли это быть так?Влияет ли словарь env на local ()?

Fabric 1.3.3 в Windows 7, 32-битный Python

1 Ответ

3 голосов
/ 19 января 2012

Когда вызывается функция local, переданная команда фактически оборачивается и имеет префикс того, что находится в различных env переменных (одна из них, которую я вижу в этом вопросе, - env.path). Следовательно, команда, которая в конце концов выполнена, не совсем команда, которая была передана, и там может быть какая-то конфигурация, которая делает команду неудачной.

Чтобы разобраться в этой ситуации, убедитесь, что команда действительно выполняется с помощью --show=debug:

fab --show=debug <task>

Как только вы точно знаете выполненную команду, вы, вероятно, сможете воспроизвести проблему и выяснить, что на самом деле происходит под капотом.

...