概要
FabricがいつまでもPython3に対応していないので、どうにかしてPython3で使えないか調べた結果をまとめました。
- Python3への対応状況
- GitHub上での議論
-
Fabric3
フォークの利用
[追記]
久々に見たら、2018年5月10日、遂に Fabric 2.0 がリリースされ、 Python 3.4 以降で使えるようになりました!
[/追記]
結論
Fabric3
というフォークがあるので、Python3を使いたい人はそちらを使えば良いとのことです。
virtualenv -p python3 env
source env/bin/activate
pip3 install fabric3
Fabricについて
FabricはPython製の自動化ツールです。
Fabric自体についての説明は、こちらの記事が非常に参考になりました。ありがとうございます。
まだの方はぜひご覧下さい。
Python3への対応状況
非常に便利なFabricですが、Python3には対応していません(2016年6月5日現在)。
初めて触ったPythonがPython3だったゆとり世代の自分としては、非常に残念です。
私のような人はたくさんいるようで、GitHubでPython3関連のIssueが16個もあります。
主要なコミッターであるbitprophetさんもPython3への対応の要望にうんざりしているようで、Python3関連のIssueが立つ度に
Please see the roadmap - http://www.fabfile.org/roadmap.html - alpha for v2 out soon (really).
とコメントしてIssueをロックしています。
例えばこちらのIssueでは、
「Python3で動作するように貢献したいんだけどどうすればいいの?」という質問に対して
「ロードマップ見て、すぐバージョン2が来るから」と回答、その後別の方から
「全部のIssue見たけどさ、ずっと同じこと言ってるじゃん。オープンソースなんだから、もっと他の人に作業してもらえば?」
というコメントがついていました。まあ、その後無言でロックされているわけですが。
フォークFabric3
を利用する
そのような状況の中で、Fabric3というフォークを作った方がいらっしゃいました。
こちらのIssueで、パッチの取り込みが提案されています。
「まだPython2.5を切るわけにはいかない」という理由で、ロックされていますが、「Python3で使いたいんだけど」という人に対してはこちらのフォークが推奨されているようです。
インストールはpip3 install fabric3
とするだけです。
デメリット
Fabricで冪等性を確保するプラグインCuisine
がPython3をサポートしていないので、利用できません。
「FabricがPython3に対応したら、Cuisineも対応しよう」という提案がされているようです。
Cuisineが使えないのはちょっと残念ですが、Fabric3自体は全てのテストを通っており、通常使う分には問題無さそうです。
ちょっと業務で利用してみて、問題があれば追記しようと思います。