はじめに

Pythonプログラミング言語を使ったことがある方なら、そのライセンスについて疑問を持ったことがあるかもしれません。Pythonは Python Software Foundation License(PSFライセンス)という独自のライセンスで配布されています。
今回は、PSFライセンスの基本から実際の使い方まで、わかりやすく解説します。

Python Software Foundation Licenseとは

Python Software Foundation License(PSFライセンス、PSFL)は、Python プログラミング言語とその標準ライブラリの配布のために Python Software Foundation によって開発されたオープンソースライセンスです。
BSD スタイルの寛容なソフトウェアライセンスで、GNU General Public License(GPL)と互換性があります。

主な特徴

1. 寛容(Permissive)ライセンス

PSFライセンスは寛容ライセンスに分類され、以下の特徴があります:

  • 商用利用が可能
  • 改変・再配布が自由
  • クローズドソースでの利用も可能
  • 最小限の義務のみ

2. GPL互換

GPL 互換とは、Python を GPL で配布するという意味ではありません。すべての Python ライセンスは GPL とは異なり、改変版を配布する際にソースコードを公開する義務はありません。GPL互換であることで、GPLライセンスのソフトウェアと組み合わせて使用することができます。

3. Python専用設計

PSF ライセンスは Python とその標準ライブラリ専用に開発されました。一般的な用途には適していないことが明記されています。

PSF ライセンス Version 2 の全文

Python のソフトウェアとドキュメントは Python Software Foundation License Version 2 の下でライセンスされています。以下に公式のライセンス全文の要点を示します(Python公式ドキュメントより):

ライセンス全文の構成

PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2

1. ライセンス契約当事者
   Python Software Foundation("PSF")と、
   個人または組織("ライセンシー")との間の契約

2. 付与される権利
   PSFはライセンシーに対し、非独占的、ロイヤリティフリー、
   世界規模のライセンスを付与:
   - 複製、分析、テスト、実行、公開表示
   - 派生物の作成、配布、その他の使用
   ただし、PSFのライセンス契約と著作権表示の保持が条件

3. 派生物作成時の要件
   派生物を他者に提供する場合、Pythonに加えた変更の
   簡潔な要約を含める必要がある

4. 免責事項
   PSFはPythonを"現状のまま"提供
   明示的・黙示的な保証を一切行わない

5. 責任の制限
   PSFは偶発的、特別、結果的損害について責任を負わない

6. 契約の終了
   重大な違反があった場合、自動的に終了

7. 商標に関する制限
   PSFの商標や商号の使用は許可されない

8. 契約への同意
   Pythonをコピー、インストール、使用することで
   契約条件に同意したものとみなす

公式ライセンス文書:

注意:上記は理解を助けるための要約です。正確な条文は上記の公式ライセンスページでご確認ください。

このライセンスは8条項からなる比較的短い文書で、MITライセンスよりもやや詳細ですが、Apache 2.0ライセンスほど複雑ではありません。

他のライセンスとの比較

ライセンスタイプGPL互換主な用途
PSF License寛容ありPython言語・標準ライブラリ
MIT License寛容あり一般的なソフトウェア
Apache 2.0寛容あり企業向けプロジェクト
GPL v3コピーレフトオープンソース強制
BSD寛容あり学術・研究目的

実際の使用例

PSFライセンスは主に以下で使用されています:

Python本体

  • Python インタープリター – メインのPython実行環境
  • Python 標準ライブラリ – os, sys, json などの標準モジュール
  • Python ドキュメント – 公式ドキュメントとチュートリアル

関連プロジェクト

PSFライセンスまたはその派生を使用するプロジェクト:

  • matplotlib – データ可視化ライブラリの一部
  • 一部のPythonパッケージ – PSF License 2.0を採用するプロジェクト

バージョン履歴と互換性

Pythonのライセンスは複雑な歴史を持っています:

GPL互換性の変遷

GPL互換ライセンスにより、PythonをGPLで配布される他のソフトウェアと組み合わせることが可能になります。しかし、すべてのバージョンがGPL互換ではありませんでした:

  • Python 2.0.1以降 – GPL互換
  • Python 1.6〜2.0、2.1の一部 – GPL非互換
  • Python 1.6.1は本質的に1.6と同じですが、後のバージョンでGPL互換を可能にするライセンス変更が行われました

開発者として知っておくべきポイント

Pythonを使用する場合

1. 商用利用

Pythonは商用プロジェクトで自由に使用できます。PSFライセンスは寛容ライセンスのため、プロプライエタリソフトウェアに組み込むことも可能です。

2. 配布時の注意

Python を含むソフトウェアを配布する場合:

  • PSFの著作権表示を保持
  • ライセンス条文を同梱
  • 改変した場合でも元の著作権情報を維持

3. 商標について

“Python”はPython Software Foundationの登録商標です。ドキュメントやアプリケーションで言及する際は、適切な商標表示を行う必要があります。

サードパーティライブラリ

Pythonのサードパーティモジュールの多くは、同様に非制限的なオープンソースライセンスで配布されていますが、各ライブラリのライセンスを確認し、不明な点は作者に確認する必要があります。

注意事項と制限

1. 一般用途には不適切

PSFライセンスはPython専用に設計されているため、自分のプロジェクトのライセンスとしては推奨されません。

2. 無保証

他の多くのオープンソースライセンスと同様、PSFライセンスも「現状のまま」提供され、品質や動作について保証されません。

3. 貢献時のライセンス

PSFにコードを貢献する場合、PSFライセンスを使用するのではなく、別途貢献者ライセンス契約に従う必要があります。

まとめ

Python Software Foundation Licenseは、Pythonプログラミング言語の普及を促進するために設計された寛容なライセンスです。GPL互換性を持ちながらも、商用利用やクローズドソースでの利用を制限しないため、幅広い用途でPythonを活用できます。

開発者として重要なのは、ライセンスの内容を正しく理解し、著作権表示やライセンス条文の保持といった基本的な義務を守ることです。また、サードパーティライブラリを使用する際は、各ライブラリのライセンスも確認することを忘れずに。

Pythonエコシステムの健全な発展のためにも、適切なライセンス管理を心がけましょう。


用語解説

BSD スタイルライセンス:カリフォルニア大学バークレー校で開発されたライセンスに由来する、寛容なオープンソースライセンスのスタイル。最小限の制約で自由な利用を可能にする。

GPL互換:GNU General Public Licenseで配布されるソフトウェアと法的に組み合わせて使用・配布できること。ただし、GPL互換ライセンスそのものがGPLというわけではない。

寛容ライセンス(Permissive License):最小限の制約で、商用利用やクローズドソースでの利用を許可するオープンソースライセンス。対義語はコピーレフトライセンス。


この記事は一般的な情報提供を目的としており、法的アドバイスではありません。具体的な法的問題については、専門家にご相談ください。