0

Python 2.4.3私の現在の要件は、 RHEL 5 にバンドルされているスクリプトを作成することです。しかし、数年後、たとえば 5 年後、サーバーは付属の RHEL 8 または 9 にアップグレードされる可能性がありますPython 3。そのため、両方のバージョンに対応するコードを書くことになっています。現在、私のスクリプトには、ディレクトリの作成、ファイルの解凍、ファイル操作、XML ファイルの読み取り (現在は で行っていますminidom)、いくつかのハッシュなどの基本的な操作が含まれています。

python-modernizeと呼ばれるツールが の上に構築された作業を行うことがわかりました2to3。ツールを検索したところ、tar.gz ファイルが見つかりました。python-modernize ファイルは含まれていません。しかし、私が見つけたのはsetup.pyファイルだけでした。私はPythonが初めてで、知っているのは何かがpip. しかし、Python 2.4.3 で pip を使用するのは大変なことも読みました。

どうすれば仕事ができるようになるか教えてください。

これも参照しましたが、ツールの使用方法が見つかりませんでした。

また、これに代わる良い方法があれば教えてください。

4

1 に答える 1

1

sixBenjamin Petersonのライブラリを使用します。

これはまさにこのユースケースのために特別に設計されたものです。six ライブラリから 2 から 3 とは異なるものをインポートすることで、Python 2 と Python 3 の両方をサポートする単一のコードベースを持つことができます。

単にインポートしてその定義を使用するだけです:

import six

例:

from six import u, b

上記は、Python 3+ で Unicode 文字列とバイトの動作方法がより厳密に変更された古典的なものです。

Six は Python 2 および 3 互換ライブラリです。両方の Python バージョンで互換性のある Python コードを作成することを目的として、Python バージョン間の違いを滑らかにするためのユーティリティ関数を提供します。提供される内容の詳細については、ドキュメントを参照してください。

Six は 2.5 以降のすべての Python バージョンをサポートしています。これは 1 つの Python ファイルにのみ含まれているため、プロジェクトに簡単にコピーできます。(著作権およびライセンス通知は保持する必要があります。)

更新:申し訳ありませんが、Python<=2.5要件を逃しました。しかし、正直なところ、6 を使用するのが最良の選択肢だと思います。最低限の Python 2.5 を使用しなければならないという権限を納得させる必要があります。

更新 #2:コードを少なくとも Python 2.7 にアップグレードすることを強くお勧めします。置き去りにしないでください。そうしないと、常にボールの後ろにいることになります。

更新 #3:上記の非常に役立つコメントのとおりです。同意します。今持っているものだけを使って作業してください。5 年は確かに長い時間であり、それまでに同じ制限が適用されない可能性があります。

于 2015-05-13T11:50:30.193 に答える