用fabric2启动本地命令时发生自错误

时间:2018-07-28 17:23:46

标签: python fabric

这是我的代码:

from fabric2 import Connection
cbis = Connection.local()
with cbis.cd('/home/bussiere/Workspace/Stack/Event/'):
    cbis.run('git add .')

但是我有这个错误:

TypeError: local() missing 1 required positional argument: 'self'

如何使用fabric2在本地启动命令

1 个答案:

答案 0 :(得分:0)

显然,您应该以某种方式实例化Connection类,如下所示:

cbis = Connection(possibly some arguments).local()

发生此错误是因为类是Python中的对象。您可以编写自己的示例,该示例将产生相同的错误:

class Test:
    def function(self):
        print('hey')

Test.function()
Test().function()

此处,第一次调用不会实例化Test对象,因此,没有隐式的第一参数提供给function。这会导致错误。第二个调用调用Test实例的函数,并将隐式第一个参数(即同一实例)传递给function。该函数只需要一个参数,因此一切正常。