Python 2.6または2.7または3.xを使用する必要がありますか?[閉まっている]


25

私が使用しているpythonのバージョンは2.6で、2.7と3.xがあります。通常、私はいくつかの些細なプログラム/スニペットにPythonを使用します。2.xと3.xには大きな違いがあることに気付きました。pythonでより大きなプロジェクトを作成する場合、どのバージョンのpythonを使用する必要がありますか?

2.7にアップグレードするか、3.xにアップグレードするか、2.6のままにする必要がありますか?

決定は次の条件に基づいて行う必要があります。

  1. コミュニティとしてのインターネットのユーザーの数。より多くのユーザーは、より多くのオープンソースパッケージと彼らからの助けを意味します。

  2. 機能性。

  3. 公式開発チームからのサポート。

  4. 既存のモジュール/パッケージの互換性。

ありがとう!


5
誰かがPython 3.xによって行われた有益な変更を指摘できますか?
lamwaiman1988

1
既存のモジュールとの互換性が問題であることを知っていると言いますが、コードがどの既存のモジュールに依存しているかは教えません。この質問はほとんど答えられません。
ウーブル

2
オフトピック; 推奨事項と1つの質問でゴリラ対サメすごい!

3
この質問とその回答は、ごく限られた時間にのみ役立ちます。3.xがより成熟するにつれて、今から理にかなっていることは1年後にはあまり意味をなさないかもしれません。
ブライアンオークリー

(a)質問は2014年でも関連性があります(たとえば、RobotFrameworkはPython 3で動作しません)および(b)この質問閉じると、このページが古くなります。投稿できません。
ボブスタイン

回答:


27

Python 2.7を自分で提案します。Python 2.xシリーズの最新リリースです。Pythonモジュールのほとんどは、Python 2.xで動作するように作られています。Python 3に移行しようとする動きがありますが、Python 3モジュールはいずれも2と3の両方のために書かれています。Python3では利用できない古い機能を使用しないでください。Python 3で実行します。

Python 3を使用する場合、あなたはアーリーアダプターの1つであり、他のユーザーにPython 3をダウンロードするように指示する必要があります(多くのコンピューターにはPython 2が搭載されています)。一方、新機能はPython 3にのみ追加されます。Python2は永続的にメンテナンスされています。だから私はまだ10年でPython 2を使用することをお勧めしません。

PythonパッケージとPython 3との互換性に注目したい場合は、次のサイトに注目してください:http : //python3wos.appspot.com/


djangoは3.xをサポートしていませんか?だから、djangoに慣れているユーザーは3.xを使用できませんか?
lamwaiman1988

ちょっと普通、新しいバージョンがリリースされると、それは前のバージョンよりも良いことを意味します。そして、なぜPythonが2.xシリーズと3.xシリーズでリリースされているのですか?それらの実際の違いは何ですか。
ホット

4
Python 3は、言語にいくつかの有益な変更を加えましたが、Python 2の一部の機能と下位互換性がありません。したがって、削除されたものと追加されたものがあります。
jsternberg

2.7の場合は
+1、3

@Ashinkn変更はdocs.python.org/3.0/whatsnew/3.0.htmlにあります。主要な互換性を損なう変更は、デフォルトの文字列タイプとして(ASCIIではなく)Unicodeを使用することからの切り替えです。代わりに使用される新しいbytearray型が存在する前に、人々が文字列をbyte []として使用した場所。また、Unicodeとして明示的に定義された2x文字列は、通常の文字列に変更する必要があります。
エヴァンプライス

19

私の意見では、人々をPython 3に引き継ぐ必要があり、Python 3と互換性のないライブラリがある場合は、そうではないようにする必要があります。

Python 3はこの言語の未来であり、Python 3を使用して記述するコードが多いほど優れています。


私たちが必要なのはPythonの両方のバージョンと互換性があり、インテリジェントにそれらを解析することができ、単一のインタプリタです。つまり、上記のインタープリターはpython2とpython3の両方を同じバイトコードにコンパイルして互換性を持たせ、python2ライブラリでpython3を使用できるようにします。C、C ++、およびJavaでできるなら、Pythonでもできます。
ブレーデンベスト

4

Djangoは、「実験的に」Python 3.2以降をサポートしています。こちらの投稿をご覧ください

それと、Python 3.xが言語の未来であるという事実を考えると、Python 3が今が最適だと思います。


2

各プロジェクトについて、プロジェクトに必要なすべてのライブラリがすでに3.xのpythonサポートを取得しているかどうかを確認し、それが将来であり、それが最後の公式安定バージョンであるため、python 3.xを使用します。

それ以外の場合は、ライブラリの互換性のために必要なものをすべて使用します。


2

Python 2.7を使用するか、Python 3を使用するかは、実際には関係ありません。Python2.7で古い機能を使用しない場合は、コードを2to3だけでPython 3で実行できます。


0

以前同じ船に乗っていて、これが私が見つけたものです。Python 2.6、2.7、および3.2は、MacPortsを使用してサイドバイサイドでインストールでき、簡単に切り替えることができます。(私はMacユーザーです)。お使いのプラットフォーム用のMacportsの代替品を探してください。


0

2.7パッケージの透過的な使用を可能にするために、ブリッジが3.x内で本質的に開発されるまでは、言語は実際に貢献したすべてのものであるため、危険が伴います。正式な考慮事項と純度は、比較すると無視できます。このような透明な橋は、純粋な退屈な頑固さから生じ、ユーザーベースを無視する可能性はありません。


このような透明なブリッジは実現不可能です。2to3および6パッケージは十分なブリッジを提供しますが、透明性にはほど遠いです。
マーティンピーターズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.