【发布时间】:2018-09-26 02:16:42
【问题描述】:
我正在使用 python 脚本(位于 Windows)以在 linux 服务器中远程执行(另一个)脚本。我需要更改目录并保持执行脚本的状态,经过研究我发现fabric's help 可以解决问题。但是它遇到了pylint错误:
E1129:Context manager 'generator' doesn't implement __enter__ and __exit__.and
找到了一些解决这个问题的方法,比如here,但是我不明白这一点,不知道发生了什么以及如何解决。据我了解,fabric context manager cd 与"with" statement 一起工作,许多示例看起来像我的代码,很少有人报告这种行为的解决方案,或者是我这个初学者不明白。我使用 VSCode 作为 IDE、python 3.7 和 fabric3。希望你能帮助我澄清发生了什么。谢谢!
这是我现在使用的代码:
from fabric.api import cd, run, task, run, env
from fabric.context_managers import cd
env.hosts = ['xxx@server.domain.com:22']
env.password = ['myp@ss']
DIR = 'elfar/elfar'
def go_to_script():
with cd(DIR):
run("ls")
【问题讨论】:
-
可能是Pylint的错,你可以忽略它。
-
那么需要去掉错误吗? pylint 不允许我看到任何结果。
-
您正在导入一个
cd对象两次。 -
感谢您的通知!,正如@iBug 提到的,这是 Pylint 的问题。
标签: python fabric pylint contextmanager