2014-06-20 22 views
1

我正在用python3.2運行Django,並且最近發現織物不支持Python3。液晶上下文切換器不在織物中工作

所以我創建了第二個虛擬環境(fabric-env),只是爲了運行fabric。

這裏是從的virtualenv輸出晶圓廠--version:

Fabric 1.9.0 
Paramiko 1.14.0 

蟒蛇--version

Python 2.7.3 

我晶圓廠文件看起來像這樣(只相關線):

from fabric.api import local 

def deploy(branch_name): 
    with lcd('/var/www/finance'): 
     local('git pull /home/user1/dev/' + branch_name) 
     local('/var/www/finance/finance-env/bin/python3 manage.py test corefinance') 
     local('/var/www/finance/finance-env/bin/python3 manage.py schemamigration corefinance --auto') 
     local('/var/www/finance/finance-env/bin/python3 manage.py migrate corefinance') 
     local('sudo service apache2 restart') 

當我運行這個部署功能時,出現以下錯誤:

File "/var/www/finance/fabfile.py", line 19, in deploy 
    with lcd('/var/www/finance'): 
NameError: global name 'lcd' is not defined 

結構文檔說該功能應該可用。看起來結構和Python都足夠新近了(只是爲了確保結構不會嘗試從不同的Python運行,我在虛擬環境內外運行此功能)。

沒有在谷歌命中錯誤信息......

回答

1

您還沒有進口lcd。將以下內容添加到文件頂部:

from fabric.context_managers import lcd