LCD上下文切换器在织物中不工作



我使用python3.2运行Django,最近发现fabric不支持Python3。

所以我创建了第二个虚拟环境(fabric-env)来运行fabric。

下面是virtualenv的fab——version输出:

Fabric 1.9.0
Paramiko 1.14.0
python——版本

Python 2.7.3

我的fab文件看起来像这样(只有相关的行):

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

fabric文档说这个函数应该是可用的。看起来fabric和Python都是最新的(只是为了确保fabric没有试图运行不同的Python,我在虚拟环境内外都运行了这个函数)。

未导入lcd。将以下内容添加到文件的顶部:

from fabric.context_managers import lcd

最新更新