Соединение Basic Fabric SSH - PullRequest
0 голосов
/ 19 марта 2019

Я просто потратил много времени, пытаясь следовать основам использования Fabric для установления соединения с удаленным компьютером. Я использую Raspberry Pi 3, на нем установлен Python 2.7 и Fabric 1.13.1. Я могу успешно запустить функцию hello world, используя fabfile, но на самом деле не могу написать скрипт python, который устанавливает соединение с удаленной машиной, будь то в отладчике живого python или в отдельном файле python. Я даже не пытаюсь установить связь. Я просто пытаюсь импортировать соединение из ткани. Пример:

from fabric import Connection

или

import fabric
c = fabric.Connection("192.168.0.1")

Это всегда приводит к ошибке:

AttributeError: 'module' object has no attribute 'Connection'

Я не уверен, что делать. Когда я заглядываю внутрь каталога исходного кода фабрики, там нет ничего с именем Connection. Что я тут не так делаю?

Примечание: я следую учебному пособию по адресу: http://www.fabfile.org/

1 Ответ

1 голос
/ 24 марта 2019

Вы используете Fabric v.1.X, в которой API не является OO, а модуль fabric даже не имеет атрибута Connection.

Чтобы воспользоваться преимуществом атрибута Connection, вы должны использовать fabric v2.X, версия, документированная в fabfile.org

Однако эта версия не совместима с Python 2.X

Если вам действительно нужно придерживаться Python 2.X, вы должны использовать словарь env

from fabric.api import env

env.hosts = ['192.168.0.1']

# Your remaining code here

Для получения дополнительной информации, пожалуйста, обратитесь к документам Fabric 1.13 здесь

...