大規模な Python 2 コードベースを Python 3 に更新するにはどうすればよいですか?

WBOY
リリース: 2023-09-04 17:09:08
転載
1123 人が閲覧しました

###############導入###

Python は元々、「Legacy Edition」とも呼ばれる Python バージョン 2 として始まりました。 Python2 の最後のバージョンは Python2.7 で、2020 年に廃止されました。 Python 3.x は、Python 2.x バージョンと比較して多くの改善とバグ修正が行われた代替として導入されました。 Python の古いレガシー バージョンは LTS ソフトウェアです。つまり、長期サポートが提供されます。ただし、Python 3.x バージョンは下位互換性がないバージョンであるため、Python 3 の使いやすさとサポートを最大限に活用するには、Python 2 コードベースを Python 3 にアップグレードする必要があります。開発者が Python 3 にアップグレードする最大の理由は、a) 開発者の生産性 (動的に型付けされるため、学習とコーディングが非常に簡単です)、および b) ほとんどのタスクのパフォーマンスの高速化を含むパフォーマンスの向上として挙げられます。 如何将一个大型的Python 2代码库更新到Python 3?

Python3にアップデートする方法

コードベースを Python 3 で書き直す

    移植プロセスの使用
  • 方法 1: コード ベース全体を書き直す
  • コード ベースをアップグレードするこの方法は、小規模なソフトウェアを構築する場合にのみ役立ちます。これは、コードベースをアップグレードする人は、コードベース全体がどのように機能するかを一般的に理解する必要があるためです。 Python 3 でコードを書き直すと、Python 3 の能力と使いやすさを実現し、コードをより短く効率的にすることができます。さらに、他の方法を使用してコード ベースを移行する場合、コード ベース全体が移行されるまで、Python 3.x 機能の実装で問題が発生する可能性があります。コードベースを書き直すことでこの問題は解決され、長い間やりたかったコード ブロックをアップグレードする機会も得られました。

  • ただし、この方法は、コード ベースのスケーラブルなサイズが小さい場合にのみ機能します。

方法 2: 移植プロセスを使用する

一方、ドキュメントで公式に説明されている Python 移植プロセスを使用することもできます。大まかに言うと、この移植は 3 段階のプロセスです -

自動変換

    手動変更
  • 実行時の検証と修復
  • ただし、これらすべての前提条件は、最初に Python 3 とその関連パッケージおよびライブラリをインストールすることです。 Windows のプロセスを見てみましょう。
  • ###ダウンロードとインストール -### https://www.python.org/ftp/python/3.7.4/python-3.7.4.exe

    これにより、Python ソフトウェアがインストールされます。その後、公式の Python 2 から Python 3 への移植モジュールまたはソフトウェア (2to3 など) を使用して移植プロセスを開始できます。これによりコードが Python 3 に移植されますが、次の問題に注意する必要があります -

  • Python3 との互換性を示すために Setup.py ファイルを更新しました

インストール ファイル内の分類子は、プログラミング言語 ::Python::3 を含むように更新する必要があります。これにより、Python 3 またはその一部のバージョンのみがコーディング環境に存在できるようになり (バージョン固有の分類子も利用可能)、Python 2 コードへの不必要なバックトラックを防ぎます。これはコードの整合性を維持するのに非常に役立ち、コードベース全体が Python 3 内にのみ存在できるようになります。

現代的または未来的なスクリプトを使用する

Python 3 には下位互換性がないため、コード ベース内のすべてのスクリプトを Python 3 標準にアップグレードする必要があります。ここでは、アップグレードする必要がある各モジュールの先頭で、Modernize や Futurize などのスクリプトを使用できます。すべての Python 機能がモジュールで使用されるわけではありませんが、モジュールのスムーズな動作を保証するには、いくつかの基本機能を最新化する必要があります。したがって、安全を期すために、Python の公式ドキュメントでは次のコードを追加することを推奨しています -

リーリー

これにより、いくつかの基本的な依存関係が原因で、現在のコードが劣化したり、Python 3 で動作しなくなることがなくなります。ただし、より良いアプローチは Pylink プロジェクトを使用することです。 --py3k フラグは、コードが Python 3 互換性から逸脱していることを示すのに役立ちます。これにより、Modernize または Futurize スクリプトが各ブロックの先頭で個別に実行されることがなくなり、コードが短くなり、エラーが少なくなります。ただし、Pylint は Python 3.4 以降のみをサポートすることに注意することが重要です。

インポート時に機能検出を使用してバージョンの互換性を確保します

場合によっては、Python 2 コード ベースに Python 3 で実行できないモジュールが含まれる場合があります。機能検出を使用すると、以前のプロジェクトが Python 3 バージョンをサポートしているかどうかを確認できます。バージョン検出ではなく機能検出を使用して、使用する必要がある正しいバージョンを確認することは、より安全なアプローチであり、将来のさらなる問題を防ぐことができます。

リーリー

バイナリデータとテキストデータを比較する際のチェック

Python 3 では、エラーが発生するため、テキスト データ型とバイナリ データ型を露骨に混在させることはできません。ただし、他の Python ライブラリを使用してこのチェックを自動的に実行することはできないため、カスタム コード ブロックを実行して文字列ベースのデータとバイナリ ベースのデータを比較することをお勧めします。その理由は、Python

3 バイト

が古いバージョンと同様に動作が異なるためです。 Python の同じ古い

str

良好なテスト範囲を確保する

適切なテスト カバレッジを確保することは、バグを防止し、必要な部分のみを変更することでコードのアップグレードに必要な時間を短縮するために重要です。この状況では、Coverage.py などのツールが非常に役立ち、実行内容とエラーの違いを見つけてエラーの正確な場所を特定します。 ###結論は###

ここでは、大規模なソフトウェア コードベースを Python 2 から Python 3 に移行するいくつかの方法、注意すべきいくつかの制限事項、および使用できるいくつかの便利な方法について説明しました。ただし、このプロセスは、検討するコード ベース、プロジェクトで使用されるライブラリとモジュールに応じて、ある程度異なる場合があります。これらの一般的な手順により、実際にほとんどのコード ベースを Python 3 に変換し、Python コードを全体的に適切な方法で最新化できます。

以上が大規模な Python 2 コードベースを Python 3 に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!