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