2012-01-18 34 views
2

自從升級Fabric(這是因爲本地不工作),我注意到Windows上的local()命令中存在一些奇怪的行爲。我fabfile的相關位看起來是這樣的:在Windows上運行Fabric中的本地()命令

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) 

運行用於火了典型的Django測試套件fab test。它仍然在我的Mac上。在Windows上,它聲稱運行該命令,然後在沒有實際測試的情況下停止。如果我將env信息移動到命令中(或者只是刪除它),fab test按預期工作。應該是這樣嗎? env字典是否影響local()?在Windows 7中,32位的Python

回答

3

local函數被調用

面料1.3.3,傳遞實際上是包裹,並與什麼不同env變量(其中一人發現前綴的命令,我在問題中看到的是env.path)。因此,最終執行的命令並不完全是通過的命令,可能會有一些配置使命令失敗。

要troubleshout這種情況下,確保對什麼是真正被使用--show=debug執行的命令:

fab --show=debug <task> 

一旦你確切地知道執行的命令,你也許可以重現該問題,並找出什麼是真正發生的事情在引擎蓋下。

+0

嗯,我是個白癡。不知道爲什麼我打擾道路是env的一部分,而不是一個變量。謝謝。 – Tom 2012-01-19 20:24:45