Диспетчер контекста Pylint и Fabric

1

Я работаю в скрипте python (окна), чтобы удаленно выполнить (другой) скрипт на сервере linux. Мне нужно изменить каталог и сохранить состояние для выполнения сценария, и после исследования я обнаружил, что помощь по ткани может решить проблему. Однако он попадает на ошибку pylint:

E1129:Context manager 'generator' doesn't implement __enter__ and __exit__.and 

Нашли некоторые комментарии к этой проблеме, как и здесь, но я не понимаю, не знаю, что происходит и как разрешать. Насколько я понял, менеджер контекста для работы с материалами работает вместе с оператором "с", многие примеры похожи на мой код, мало кто сообщает о решении такого поведения, или это я, который новичок не понимает. Я использую VSCode как IDE, python 3.7 и fabric3. Надеюсь, вы поможете мне прояснить, что происходит. Спасибо!

Это код, который я использую сейчас:

from fabric.api import cd, run, task, run, env
from fabric.context_managers import cd

env.hosts = ['[email protected]:22']
env.password = ['myp@ss']
DIR = 'elfar/elfar'

def go_to_script():
    with cd(DIR):
        run("ls")
  • 0
    Может быть, вина Пилинт, вы можете игнорировать это.
  • 0
    Так надо убрать ошибку? Pylint's не позволяет мне увидеть какой-либо результат.
Показать ещё 2 комментария
Теги:
fabric
pylint
contextmanager

1 ответ

0

Кажется, что эта проблема существует очень долго, она называется "ложная ошибка неконтекст-менеджера". Решение пропускает предупреждение, отключая проверку pylint не-контекст-менеджера. Я достиг этого, выполнив следующие шаги:

  1. Перейдите в папку проекта и создайте файл pylintrc

    pylint --generate-rcfile > ~/.pylintrc
    
  2. Откройте файл и найдите строки:

    # --disable=W".
    disable=
    
  3. Добавьте неконтекст-менеджер в конце списка, как они это сделали здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню