.. image :: https://github.com/python/cpython/workflows/Tests/badge.svg:alt:GitHub ActionsでのCPythonビルドステータス:target:https ://github.com/python/cpython/actions
.. image :: https://dev.azure.com/python/cpython/_apis/build/status/Azure%20Pipelines%20CI?branchName=main:alt:Azure DevOpsでのCPythonビルドステータス:target:https:// dev.azure.com/python/cpython/_build/latest?definitionId=4&branchName=main
.. image :: https://img.shields.io/badge/discourse-join_chat-brightgreen.svg:alt:Python Discourseチャット:target: https : //discuss.python.org/
Copyright©2001-2022PythonSoftwareFoundation。全著作権所有。
著作権およびライセンスの詳細については、このファイルの最後を参照してください。
.. コンテンツ::
CPython開発への貢献に関するより完全な手順については、
Developer Guide_を参照してください。
.. _開発者ガイド:https ://devguide.python.org/
インストール可能なPythonキット、およびPythonの使用に関する情報は、
python.org_で入手できます。
.. _python.org:https://www.python.org/
Unix、Linux、BSD、macOS、およびCygwinの場合::
./configure make make test sudo make install
これにより、Pythonがとしてインストールされ
python3ます。
configureスクリプトには多くのオプションを渡すことができます。詳細を確認するために実行
./configure --helpします。macOSの大文字と小文字を区別しないファイルシステムおよびCygwinでは、実行可能ファイルは
python.exe;と呼ばれます。他の場所ではそれはただ
pythonです。
完全なPythonインストールをビルドするには、ビルドプラットフォームと構成オプションに応じて、さまざまな追加のサードパーティライブラリを使用する必要があります。すべての標準ライブラリモジュールがすべてのプラットフォームでビルド可能または使用可能であるとは限りません。さまざまなLinuxディストリビューションおよびmacOSの依存関係に関する現在の詳細情報については、_の
Install dependencies <https://devguide.python.org/setup/#install-dependencies>_セクションを参照してください 。
Developer Guide
macOSには、macOSフレームワークとユニバーサルビルドに関連する追加の構成オプションとビルドオプションがあります。
Mac/README.rst <https://github.com/python/cpython/blob/main/Mac/README.rst>_を参照してください。
Windowsでは、
PCbuild/readme.txt <https://github.com/python/cpython/blob/main/PCbuild/readme.txt>_を参照してください。
必要に応じて、サブディレクトリを作成し、そこからconfigureを呼び出すことができます。例えば::
mkdir debug cd debug ../configure --with-pydebug make make test
(トップレベルのディレクトリでもビルドした場合、これは失敗します
make clean。最初にトップレベルでビルドする必要があります。)
configure --enable-optimizationsを実行する前に、Pythonの最適化されたビルドを取得します
make。これにより、デフォルトのmakeターゲットがプロファイルガイド最適化(PGO)を有効にするように設定され、一部のプラットフォームでリンク時間最適化(LTO)を自動有効にするために使用される場合があります。詳細については、以下のセクションを参照してください。
プロファイルガイド付き最適化^^^^^^^^^^^^^^^^^^^^^^^^^^^
PGOは、GCCまたはClangコンパイラの最近のバージョンを利用します。構成フラグに関係なく、経由
configure --enable-optimizationsまたは手動で実行し て使用する場合、最適化されたビルドプロセスは次の手順を実行します。
make profile-opt
Pythonディレクトリ全体から、前回のコンパイルで発生した可能性のある一時ファイルが削除されます。
各フレーバーに適したコンパイラフラグを使用して、インストルメント化されたバージョンのインタプリタが構築されます。これは単なる中間ステップであることに注意してください。この手順で作成されたバイナリは、プロファイリング命令が内部に埋め込まれているため、実際のワークロードには適していません。
インストルメント化されたインタープリターが構築された後、Makefileはトレーニングワークロードを実行します。これは、インタプリタの実行をプロファイリングするために必要です。このステップで表示される可能性のあるstdoutとstderrの両方の出力が抑制されることにも注意してください。
最後のステップは、インストルメントされたインタプリタから収集された情報を使用して、実際のインタプリタを構築することです。最終結果は、最適化されたPythonバイナリになります。配布または実稼働インストールに適しています。
リンク時間の最適化^^^^^^^^^^^^^^^^^^^^^^
--with-ltoconfigureのフラグを介して有効になります。LTOは、最近のコンパイラツールチェーンの機能を利用して、
.o最終的な実行可能ファイルまたは共有ライブラリを構築するときに、他の点では任意のファイル境界を越えて最適化し、パフォーマンスをさらに向上させます。
What's New in Python 3.12 <https://docs.python.org/3.12/whatsnew/3.12.html>_ドキュメントの変更の包括的な概要があります。より詳細な変更ログについては、をお読みください
Misc/NEWS <https://github.com/python/cpython/blob/main/Misc/NEWS.d>。ただし、変更の完全な説明は、からのみ収集できます
commit history <https://github.com/python/cpython/commits/main>。
Pythonの複数のバージョンをインストールする場合は、以下の「複数のバージョンのインストール」というタイトルのセクションを参照してください。
Documentation for Python 3.12 <https://docs.python.org/3.12/>_はオンラインで、毎日更新されます。
また、より高速にアクセスするために、さまざまな形式でダウンロードすることもできます。ドキュメントは、HTML、PDF、およびreStructuredText形式でダウンロードできます。後者のバージョンは、主にドキュメントの作成者、翻訳者、および特別なフォーマット要件を持つ人々を対象としています。
Pythonのドキュメントの作成については、
Doc/README.rst <https://github.com/python/cpython/blob/main/Doc/README.rst>_を参照してください。
Python 3.0のリリースでは、後方互換性のない大幅な変更が加えられました。これにより、Python2用に記述されたプログラムがPython3で実行すると失敗する可能性があります。Python2からPython3へのコードの移植の詳細については、
Porting HOWTO <https://docs.python.org/3/howto/pyporting.html>_を参照してください。
インタプリタをテストする
make testには、最上位ディレクトリに入力します。テストセットはいくつかの出力を生成します。インポートできないオプション機能のためにスキップされたテストに関するメッセージは通常無視できます。失敗したテストに関するメッセージが出力されたり、トレースバックまたはコアダンプが生成されたりする場合は、何か問題があります。
デフォルトでは、テストはディスクスペースやメモリなどのリソースを使いすぎないようになっています。これらのテストを有効にするには、を実行し
make testallます。
いずれかのテストが失敗した場合は、失敗したテストを詳細モードで再実行できます。たとえば、
test_os失敗した場合
test_gdbは、次を実行できます::
make test TESTOPTS="-v test_os test_gdb"
失敗が続き、環境ではなくPythonの問題であると思われる場合は、
file a bug report <https://github.com/python/cpython/issues>そのコマンドからの関連する出力を含めて、問題を表示できます。
Running & Writing Tests <https://devguide.python.org/runtests/>テストの実行の詳細については、_を参照してください。
UnixおよびMacシステムで、同じインストールプレフィックス(
--prefixconfigureスクリプトの引数)を使用して複数のバージョンのPythonをインストールする場合は、プライマリpython実行可能ファイルが異なるバージョンのインストールによって上書きされないように注意する必要があります。を使用してインストールされたすべてのファイルとディレクトリ
make altinstallには、メジャーバージョンとマイナーバージョンが含まれているため、共存できます。 また、を参照するを
make install作成 します。同じプレフィックスを使用して複数のバージョンをインストールする場合は、どのバージョン(存在する場合)が「プライマリ」バージョンであるかを決定する必要があります。を使用してそのバージョンをインストールします。を使用して他のすべてのバージョンをインストールします。
${prefix}/bin/python3
${prefix}/bin/python3.X
make install
make altinstall
たとえば、3.12をプライマリバージョンとしてPython 2.7、3.6、および3.12をインストールする場合は
make install、3.12ビルドディレクトリなど
make altinstallで実行します。
バグレポートは大歓迎です!Githubを使用して
report bugs <https://github.com/python/cpython/issues>、および/または
submit pull requests <https://github.com/python/cpython/pulls>。
python-dev mailing list <https://mail.python.org/mailman/listinfo/python-dev/>_に関する開発ディスカッションをフォローすることもできます。
Pythonを変更する提案がある場合は、最初のフィードバックのために
comp.lang.python_または
python-ideas_メーリングリストに電子メールを送信することをお勧めします。アイデアが定着した場合は、Python拡張提案(PEP)を提出できます。現在のすべてのPEP、および新しいPEPを提出するためのガイドラインは、
peps.python.org <https://peps.python.org/>_にリストされています。
.. _python-ideas:https : //mail.python.org/mailman/listinfo/python-ideas/ .. _comp.lang.python:https ://mail.python.org/mailman/listinfo/python-list ..
693Python 3.12のリリースの詳細については、:pep:を参照してください。
Copyright©2001-2022PythonSoftwareFoundation。全著作権所有。
Copyright©2000BeOpen.com。全著作権所有。
Copyright©1995-2001Corporationfor NationalResearchInitiatives。全著作権所有。
Copyright©1991-1995StichtingMathematischCentrum。全著作権所有。
LICENSE <https://github.com/python/cpython/blob/main/LICENSE>このソフトウェアの履歴、使用条件、およびすべての保証の免責事項については、_を参照してください。
このPythonディストリビューションには、 GNU General Public License(GPL)コードが含まれていないため、プロプライエタリプロジェクトで使用できます。一部のGNUコードへのインターフェースがありますが、これらは完全にオプションです。
本書で参照されているすべての商標は、それぞれの所有者に帰属します。