2013-09-11 3 views
48

Имеет ли ткань (http://docs.fabfile.org/en/1.7/) поддержку Python 3. По Python 3 Wall of Superpowers это еще не. Если не то, что является лучшей альтернативой при использовании Django 1.5 с Python 3.Python 3 поддержка ткани

+2

GitHub пользователя [@pashinin] (https://github.com/pashinin/fabric) сделал Python 3 совместимый [fork of Fabric] (https://github.com/pashinin/fabric). Некоторые тесты были отключены, но, похоже, они работают нормально для многих случаев использования. – rnevius

+1

Существует также ответ ниже, в котором упоминается пакет 'fabric3' (https://pypi.python.org/pypi/Fabric3), который должен быть сохранен более – quasoft

ответ

27

Текущий ответ который уже сделано @ miso.belica

pip install fabric3 

OLD Ответ (по состоянию на 2013 г.)

Из документов:

Пожалуйста, обратите внимание, что вся документация В настоящее время написано с Python 2,5 пользователей в виду, но с прицелом на совместимость 3.x в конечном итоге Python

Или более конкретно:

совместимость в конечном итоге Python 3.x

Похоже, что поддержка Python3 для ткани немного липкая и зависит от другой библиотеки с открытым исходным кодом, paramiko совместима с python3. На данный момент основная версия поддерживает python 3.

Возможно, вам стоит повеселиться, а затем создать экземпляр вашей ткани поверх этого вместо того, чтобы получать его от пипса.

+1

Не изменилась ли ситуация с момента отправки ответа? – gregoltsov

+0

Григорий Гольцов, нажмите ссылку «открытая проблема в github», которую опубликовал Грегори. Временный ответ - нет, не сейчас, но это не то, что вы хотите знать ... вы хотите отслеживать эту проблему (и посмотреть, что вы можете сделать, чтобы помочь, возможно, тест). –

+13

Paramiko теперь поддерживает python 3. Предположительно, ткань не будет далеко позади. –

17

Вы также можете создать отдельный python2.7 virtualenv только для ткани:

sudo virtualenv --no-site-packages -p /usr/bin/python fabric-env 
source /var/www/APPNAME/fabric-env/bin/activate 
sudo /var/www/APPNAME/fabric-env/bin/pip install fabric 
deactivate 

Тогда:

/var/www/APPNAME/fabric-env/bin/fab -f /var/www/APPNAME/fabfile.py FAB_COMMAND 
6

кажется, что ткань проходит через переписывание и Fabric 2.0 будет питон Совместимость 3.x. По крайней мере, это то, что я читал между строкой дорожной карты ниже. Тем не менее, я не могу найти репозиторий Fabric 2.0 или ветку, поэтому трудно полностью подтвердить.

http://www.fabfile.org/roadmap.html

2

Это на самом деле можно получить Fabric работать с Python 3. Вы можете увидеть, как я это сделал в this gist.

В комментариях выше, @rnevius предполагает, что invoke означает преемника Fabric 1.x, однако это не совсем правильно. Из ВЫЗОВ документы:

Таким образом, Invoke был создан, чтобы сосредоточиться исключительно на местных и абстрактных проблем, в результате чего ткань 2.x затрагивали только с серверами и сетевыми команд.

Похоже, что Fabric 2.x будет построен поверх invoke. Надеюсь, Fabric 2.x скоро появится, поэтому Python2 может умереть как можно быстрее.

75

Кажется, что есть порт Python3 Fabric с именем Fabric3, который поддерживает Python 2.7 и 3.4+ (отброшенная поддержка Python < 2.7). Я использую его в качестве замены, и он работает для меня без каких-либо проблем.

Так, пока ткань 2,0 не будет готова, этот пакет может быть использован вместо :)

pip3 install fabric3 
+4

. Этот ответ должен быть увеличен. – quasoft

+0

. Если нужно добавить 'sudo':' sudo pip3 install fabric3' –

+0

Также стоит отметить, что если pip3 install жалуется на то, что не сможет запустить C-код, тогда вы также должны сделать 'sudo apt-get install gcc-multilib g ++ - multilib' –

Смежные вопросы