Python 3支持Fabric

问题描述 投票:51回答:6

fabric(http://docs.fabfile.org/en/1.7/)是否支持Python 3。根据Python 3 Wall of Superpowers它还没有。如果不是,如果在Python 3中使用Django 1.5,那么最佳选择是什么。

python-3.x fabric
6个回答
35
投票

Current Answer已经由@ miso.belica完成

pip install -U "fabric>2.0.0"

旧答案(截至2013年)

来自文档:

请注意,所有文档目前都是以Python 2.5用户编写的,但着眼于最终的Python 3.x兼容性

或者更具体:

最终的Python 3.x兼容性

看起来Python3对Fabric的支持有点粘,依赖于另一个开源库,paramiko与python3兼容。截至目前,主版本支持python 3。

可能值得搞乱,然后在其上构建您的结构实例,而不是从pip获取它。


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

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

7
投票

似乎Fabric正在进行重写,而Fabric 2.0将与python 3.x兼容。至少这是我在下面的路线图之间读到的内容。但是,我找不到Fabric 2.0存储库或分支,因此,很难完全确认。

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


2
投票

实际上可以让Fabric与Python 3一起工作。你可以看看我是如何在this gist中完成的。

在上面的评论中,@ rnevius建议invoke是Fabric 1.x的继承者,但这并不完全正确。从调用文档:

因此,创建Invoke以专注于本地和抽象问题,使Fabric 2.x仅关注服务器和网络命令。

因此,似乎Fabric 2.x将建立在invoke之上。希望Fabric 2.x即将推出,因此Python2可以尽快消亡。


2
投票

到今天,“面料2”可用于python 3+。

“面料3”是非正式的叉子。

要从https://pypi.org/project/Fabric/安装“fabric 2”:

pip install Fabric
© www.soinside.com 2019 - 2024. All rights reserved.