fabric(http://docs.fabfile.org/en/1.7/)是否支持Python 3。根据{{3}},它还没有。 如果不是,如果在Python 3中使用Django 1.5,那么最佳选择是什么。
答案 0 :(得分:89)
似乎有一个名为Fabric3的Fabric的Python3端口支持Python 2.7和3.4+(不再支持Python< 2.7)。我用一段时间作为替代品,它对我没有任何问题。
pip3 install fabric3
似乎已有官方support for Python 3.4+ in Fabric v2+,我猜it should be preferred虽然可能有一些incompatible changes。所以在一个理想的世界里,没有人应该再遇到这个问题:)
pip3 install -U fabric
答案 1 :(得分:35)
pip install -U "fabric>2.0.0"
旧答案(截至2013年)
来自文档:
请注意,所有文档目前都是用Python编写的 2.5用户,但着眼于最终的Python 3.x兼容性
或者更具体:
最终的Python 3.x兼容性
看起来Python对Fabric的支持有点粘,依赖于另一个开源库,paramiko
与python3兼容。截至目前,主版本支持python 3。
可能值得搞乱,然后在其上构建您的结构实例,而不是从pip获取它。
答案 2 :(得分:17)
你也可以为fabric创建一个单独的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
答案 3 :(得分:7)
似乎Fabric正在进行重写,而Fabric 2.0将与python 3.x兼容。至少这是我在下面的路线图之间读到的内容。但是,我找不到Fabric 2.0存储库或分支,因此很难完全确认。
答案 4 :(得分:3)
对于那些寻找受支持的Fabric 1.x版本的人,有一个fork可以维护: https://github.com/ploxiln/fab-classic
如果您不想重写所有现有代码,我建议使用它。它可以在Python 3.7中使用。
我们已从HStack
切换到VStack
,没有任何问题。
答案 5 :(得分:2)
到目前为止,“ fabric 2”已经可以与python 3+一起使用了。
“面料3”是非官方的叉子。
要从https://pypi.org/project/Fabric/安装“ fabric 2”:
pip install Fabric