Подтвердить что ты не робот

Поддержка Python 3 для ткани

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

4b9b3361

Ответ 1

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

pip install -U "fabric>2.0.0"

СТАРЫЙ ответ (по состоянию на 2013 год)

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

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

Или чтобы быть более конкретным:

совместимость с Python 3.x

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

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

Ответ 2

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

pip3 install fabric3

Кажется, уже есть официальная поддержка Python 3. 4+ в Fabric v2+, и я думаю, что это должно быть предпочтительным, хотя могут быть некоторые несовместимые изменения. Так что в идеальном мире ни у кого больше не должно быть этой проблемы :)

pip3 install -U fabric

Ответ 3

Вы также можете создать отдельный 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

Ответ 4

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

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

Ответ 5

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

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

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

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

Ответ 6

К этому дню "ткань 2" доступна для работы с питоном 3+.

"Ткань 3" - это неофициальная вилка.

Чтобы установить "ткань 2" из https://pypi.org/project/Fabric/:

pip install Fabric