Python 3.0(および3.1)の最終リリースでは、後方互換性のためにコードベースの半分を失うことなく、アップグレードする方法の心配に多くの人々が直面しています。python 3.0へのアップグレードのヒント?
次世代のPythonに切り替えることから生じる不可避的な落とし穴を避けるためのヒントは何ですか?
おそらく開始するには良い場所が
Python 3.0(および3.1)の最終リリースでは、後方互換性のためにコードベースの半分を失うことなく、アップグレードする方法の心配に多くの人々が直面しています。python 3.0へのアップグレードのヒント?
次世代のPythonに切り替えることから生じる不可避的な落とし穴を避けるためのヒントは何ですか?
おそらく開始するには良い場所が
まず:-)「3.xへあなたのpython 2.xのコードを変換するために使用する2to3は」で、この質問はHow are you planning on handling the migration to Python 3?と非常によく似ています。そこの答えを確認してください。そこにもあるのPython 3.xの
Release Notes for python 3.0にアプリケーションを移植についてはPythonのWikiでsection
は、移植に関するセクションが含まれています。私はそこにヒントを引用している:
- (前提条件は、優れたテストカバレッジを開始します:)。
- Port to Python 2.6。これは、Python 2.xからPython 2(x + 1)の平均ポーラー よりもはるかに機能するはずです。 すべてのテストに合格することを確認してください。
- (まだ2.6を使用しています:) -3コマンドラインスイッチをオンにします。これにより、 が3.0で削除(または変更)される機能に関する警告が有効になります。 テストスイートを再度実行し、 警告が表示され、 警告が残らず、すべてのテスト がまだ通過するまで、警告が表示されるというコードを修正してください。
- ソースコードツリー上で2to3ソースからソースへのトランスレータを実行します。 ( ツールの2to3 - 自動化されたPython 2〜3 のコード翻訳を参照してください) の翻訳結果をPython 3.0で実行してください。手動で に残りの問題を修正し、すべてのテストが再び合格するまで の問題を修正します。
はPython 2.6と3.0の両方でそのまま実行さ ソースコードを記述しようとすることは推奨されません。 には非常にひどいひねりを加えたコーディングスタイルを使用する必要があります。 印刷文を避けて、 メタクラスなど。あなた が サポートはPython 2.6とPythonの両方に 3.0を必要とするライブラリを維持している場合は、最善のアプローチではなく よりも、ソースコードの2.6 バージョンを編集して、再度 2to3はトランスレータを実行することにより、上記のステップ3を変更することですソース コードの3.0バージョンを編集します。
アップグレードが本当に魅力的な理由がなければ、私は何がうまくいくのでしょうか。私は毎日使っているスクリプトをアップグレードすることを検討しました。
「壊れていない場合は修正しないでください!」
同上。私が依存しているライブラリの数が多すぎるのは依然としてPython 2.5です。図書館が移動し、安定していると審査されるまで、私は黙っています。 –
私はこれについて無料の本を書きます。あなたはここでそれを読むことができます:
を一言で言えば: を:
これは多かれ少なかれです。
死んだビデオのリンク – jxramos
私はその最後のステートメントを2.6ではなく2.xに変更したいと思います。 2.6は、新しい印刷機能を含む多くの転送互換性を持っているので、あなたはそれをまったく避ける必要はありません。 –