5

私たちのグループでは、主に検索エンジンのアーキテクチャとコンテンツの統合作業を行っており、そのコード ベースのほとんどは Python で作成されています。すべてのビルド ツールと Python モジュールの依存関係はソース管理にあるため、それらをチェックアウトして、os/プラットフォームに関係なく使用するために環境をロードできます。これは、 virtualenvが使用するアプローチと似ています。

私たちが使用する商用製品の 1 つが Python 2.3 に依存しているため、何年もの間、私たちは Python 2.3 と互換性のあるコード ベースを維持してきました。2004 年に 2.3 が登場して以来、新しいツールやライブラリには新しいバージョンの Python が必要になるため、長年にわたり、これはますます多くの問題を引き起こしてきました。

最近、ビルド環境を商用製品の環境への依存関係から切り離し、任意のバージョンの Python (または Java) を使用できるようにしました。以前のバージョンと下位互換性がある Python の最新バージョンとして Python 2.6 を標準化してから約 1 か月ほど経ちました。

Python 3.0 は (今のところ) オプションではありません。ビルド ツールと統合ツールを再び正しく動作させるには、コード ベースの多くを移行する必要があるからです。

私たちは Python 2.6 の新機能の多く、特に改善されたモジュールやクラス デコレータなどを気に入っていますが、依存している多くのモジュールが原因で Python 2.6 インタープリターがさまざまな減価償却警告を発します。EC2 クラウド クラスター ノードを管理するために私たちが関心を持っているもう 1 つのツールであるSupervisorは、Python 2.6 では正しく動作しません。

現在、本番環境ツールの開発に Python 2.6 を使用するのではなく、とりあえず Python 2.5 に標準化する必要があるのではないかと考えています。私たちが必要とするツールのほとんどは、Python 2.5 で正しく動作するようです。Python 2.6 の機能やモジュールに多くの依存関係が生じる前に、これを整理しようとしています。

どうもありがとう!

-マイケル

4

5 に答える 5

5

非推奨の警告だけで2.6を放棄するつもりはありません。それらは時間とともに消えます。(-W ignore少なくとも、Pythonインタープリターのオプションを使用して、それらが印刷されないようにすることができます)ただし、使用する必要のあるモジュールが実際にPython 2.6で機能しない場合は、2.5を使用する正当な理由になります。Python 2.5は現在広く使用されており、おそらく長い間使用されるでしょう(2.3がどれだけ続くかを考えてください!)。したがって、2.5を使用しても、しばらくの間アップグレードを強いられることはありません。

私はすべての開発作業にPython2.5を使用していますが、それはGentoo(Linux)のパッケージリポジトリでたまたま利用できるバージョンだからです。GentooのメンテナがPython2.6を「安定している」と宣言したら、*それに切り替えます。もちろん、この推論は必ずしもあなたに当てはまるとは限りません。

*Python 2.6は実際には安定しています。Gentooでそのように宣言されていない理由は、Gentoo自体がPythonに依存し、2.6で動作するようにまだアップグレードされていない他のプログラムに依存しているためです。繰り返しますが、この推論はおそらくあなたには当てはまりません。

于 2009-05-01T16:41:50.983 に答える
4

私の会社は2.5で標準化されています。あなたと同じように、100万の理由で3.0に切り替えることはできませんが、2.6に移行できればと思います。

毎日コーディングを行うと、ドキュメントを調べて、必要なモジュールまたは関数を正確に見つけることができますが、小さな注釈が付けられます。バージョン2.6の新機能

最新バージョンを使用するといいでしょう。減価償却の警告が表示された場合(おそらく非常に少ないでしょう)、それを行うためのより良い方法を見つけてください。全体的に、コードは2.6でより良くなります。

于 2009-05-01T16:44:25.470 に答える
2

私にとって、Python 2.5+を使い続けることが最も重要なのは、それが公式にサポートしているためctypesです。これにより、多くのプラグインシステムが変更されました。

2.3 / 2.4で動作するctypeを見つけることができますが、それらは公式にはバンドルされていません。

したがって、私の提案は2.5になります。

于 2009-05-01T16:43:31.697 に答える
2

今のところ2.5.2を使用しています。私たちの技術スタックはDjangoを中心にしています(ただし、他にも12個のビットとボブがあります)。したがって、私たちはそれらの機能に近いままです。

epydoc 3.0.1で動作するように、docutilsを0.4に戻す必要がありました。これまでのところ、これは大きな問題ではありませんが、ある時点で、epydocの使用を再考する可能性があります。

2.6のアップグレードは、開発計画の一部です。予算はありますが、現在のスケジュールは決まっていません。

同様に、3.0のアップグレードは、私が人々に思い出させるものです。予算を立てる必要があります。Djangoが3.0に飛躍しない限り、今年はそれを行いません。来年やるかもしれません。

于 2009-05-01T16:46:51.610 に答える