2017-02-07 14 views
1

Я работаю с fabric3 (https://pypi.python.org/pypi/Fabric3), python 3 порт ткани.Команда 'cd' не работает с fabric3

У меня есть следующие функции:

@roles('production') 
def dir(): 
    run('pwd') 
    run('ls') 
    cd('/home/deploy/mydir') 
    run('pwd') 

выход:

$ fab dir 
[[email protected]] Executing task 'dir' 
[[email protected]] run: pwd 
[[email protected]] out: /home/deploy 
[[email protected]] out: 

[[email protected]] run: ls 
[[email protected]] out: Env mysite 
[[email protected]] out: 

[[email protected]] run: pwd 
[[email protected]] out: /home/deploy 
[[email protected]] out: 

Почему игнорируют CD?

+0

попробовать 'с компакт-диска (...): бег (...) '- http://docs.fabfile.org/en/1.13/tutorial.html#making-connections – furas

ответ

1

Каждая команда работает в разделенной «среде».

cd()10 изменить папку, но следующая команда начинается с новой, понятной «среды».

Но вы можете использовать with:

with cd("<path>"): 
    run("<command>") 

Смотреть больше в ткани документ: Context Managers

Или вы можете вручную сделать

run("cd <path> && <command>")