2012-01-18 2 views
2

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

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

Ткани 1.3.3 на Windows 7, 32-битный Python

ответ

3

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

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

fab --show=debug <task> 

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

+0

Ну, я идиот. Не знаю, почему я потрудился сделать путь частью env, а не просто переменной. Благодарю. – Tom