6. Six: Python 2 and 3 Compatibility Library¶
Sixは、その名前 six (\(= 2 \times 3\)) が示しているように、 python2とpython3の両方で動作するプログラムの開発を サポートしてくれるモジュールです。 python2/pytho3互換とする為のマクロやユーティリティ関数を提供してくれます。
sixは数多くの3rdパーティモジュール(例えばmatplotlib)で採用されていますが、 それ自体も3rdパーティモジュールの扱いになっています。したがって、貴方のプログラム をsixモジュールを使って、python2/python3互換とした場合、貴方のプログラムを 配布する際には、そのユーザにはsixモジュールを別途インストールする様に注意するか、 .eggなどの方法で貴方のプログラムと同時にsixモジュールがインストールされる様に設定 しておく必要があります。
six.pyのライセンスはMITライセンスとなっていますので、ライセンスの要求する著作権表示の要件などを 満たせば、配布パッケージの中にソースコードを含ませることもできるので、大きな問題ではありませんが。
と言うことで、pythonCA, pyVXI11では six
モジュールは使わないようにしています。
6.1. おまけ¶
https://docs.python.org/ja/3/howto/pyporting.html
には、互換性を保ちながら、pytho2からpython3への移植を行う際の
手順が説明されています。此の中では、futurize
や Modernize
と言ったツールが
紹介されています。