cpython - Pythonプログラミング言語

(The Python programming language)

Created at: 2017-02-11 03:23:51
Language: Python
License: NOASSERTION

これはPythonバージョン3.12.0alpha0です

.. 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への貢献

CPython開発への貢献に関するより完全な手順については、

Developer Guide
_を参照してください。

.. _開発者ガイド:https ://devguide.python.org/

Pythonの使用

インストール可能な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-lto
configureのフラグを介して有効になります。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>
_を参照してください。

Python2.xから3.xへの変換

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システムで、同じインストールプレフィックス(

--prefix
configureスクリプトの引数)を使用して複数のバージョンの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 ..

リリーススケジュール

693
Python 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コードへのインターフェースがありますが、これらは完全にオプションです。

本書で参照されているすべての商標は、それぞれの所有者に帰属します。