22

Python で新しいオープンソース ソフトウェアを開始しようとしていますが、Python 2.x と Python 3.x のどちらを使用するべきか迷っています。

これには、重い GUI、大量のデータを扱う複雑な科学的アルゴリズムが含まれます。少なくとも Numpy、Scipy、PyQT4、PyOpenGL、h5py、オプションで Matplotlib が必要です。2013 年に最初にリリースされ、今後数年間で更新と拡張が行われる予定です。

これは、さまざまなコンピューター (Linux、Windows、Mac...) で、必ずしもコンピューター サイエンスのバックグラウンドを持っていない科学者によって使用されます。一部の機械は古い場合があります。

Python 3.x を選択した場合、特に Python 2.x が既にインストールされている古いシステムでは、ソフトウェアとサードパーティ ライブラリのインストールがより複雑になるのではないかと心配しています。すべてをコンパイルする必要がないように、Python と外部ライブラリ用の RPM のようなパッケージ (または Windows インストーラー) がほとんどのシステムで利用できるとよいでしょう。また、3.x ブランチが十分に成熟しているかどうかもわかりません。

Python 2.x を選択した場合、近い将来、2.x ブランチが廃止された場合 (いつになるのでしょうか?)、ソフトウェアを Python 3.x に移植する必要があるかもしれません。

最良の選択肢は何ですか?

4

3 に答える 3

13

更新:私の最初の答えは2012年に与えられました。しかし、数年後の今、答えは Python 3 でなければなりません


この wiki では、開発活動に Python 2 と Python 3 のどちらを使用する必要がありますか?という質問について正確に説明しています。

これは、この質問に対する非常に大きな主観的な部分であり、特定の状況と制約に正確に依存します。

IMO、ただし、必要なすべてのサードパーティ ライブラリがPython v3.xで動作するかどうかわからない場合は、Python 2.x に固執しますが、可能な限り Python 3.x と互換性があるようにコードを記述しようとします。 (たとえば、print() など) v3 に移行する必要がある場合、または移行したい場合に、作業がそれほど困難にならないようにします。もちろん、バージョン 2 から 3 への移行に関するドキュメントとツールもあります。そして、これはv2 コードを v3 に移植することです。

これは特に、制御できないシステムや、新しいバージョンの Python をインストールできないシステム、またはサードパーティのソフトウェア/ライブラリのインストールをカスタマイズできないシステムの場合に当てはまります。

あなたのソフトウェアが多種多様なシステム (Linux、Windows、Mac など) で実行され、多くの異なるユーザーによって実行されることを考えると、最近では v2 がより一般的な分母になっていると思います。

したがって、短期間の要約: バージョン 2.x を使用するが、v3.x 用のコードを使用する

最後に、この検索文字列「[python] バージョン 3 または 2」を SO 検索ボックスに入力すると、関連する投稿がいくつか見つかります。

于 2012-08-13T16:55:32.913 に答える
0

私はレボンに同意します。

これらの要件があれば、まだ Python3 から始めるリスクはありませんが、できるだけ多くの Python3 の変更を考慮してコードを作成する必要があります。

Python 3.x 構文に可能な限り近い Python 2.7 コードを書くという質問を参照してください。これは、コードを可能な限り将来的に保証するために使用できるいくつかのインポートと標準に役立つ可能性があります。

また、さまざまなシステムで実行している場合は、アプリケーションにバンドルされているバージョンの Python を配布するか、ユーザーのインストールを信頼する必要があります。ほとんどの OS (Windows 以外) には 2.x フレーバーの Python がインストールされており、技術に詳しくないユーザーがシステムを壊す可能性なしに 3.x にアップグレードするのは簡単なことではありません。

于 2012-08-13T17:01:19.917 に答える