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