2012-01-02 9 views
6

私はPythonを学ぶ過程にあり、未来について質問がありました。私はそれが現在考えているのが最も緊急なことではないことを知っていますが、私は興味があります。DjangoがPython 3に切り替えるときの管理方法は?

現在、DjangoはPython 2.7までしかサポートしていません。しかし、近い将来、Python 3をサポートします。Python 2.7でコードを記述し、関連するDjangoフレームワークを使用するという点で、Python 3への移行が実際に行われるとどうなりますか。

恐らく、私は新しいバージョンで学び、コード化していただろう。しかし、古いコードを維持するのはどうでしょうか?それはそのままですか?それは書き直す必要がありますか?

これらの移行の仕組みについて私は興味があります。また、Python 3と後方互換性がないという違いがありますか?それの結果は何ですか?例えば、私はRubyのバージョン1.8から1.9(そして未来の2.xでも)は下位互換性があり、Python 2.xから3.xへの飛躍が少ないことを読んでいます。私は、Pythonのバージョン間の分割がフラグメント化の問題やコードのメンテナンスの問題を引き起こすのだろうか?

だから、誰かが私にこれらのアップデートやそれらを扱うときの問題を説明してくれたら、本当に感謝します。ありがとう!

+0

2.xのPythonコードを3.xのコードに変換するツールがあります。 –

+1

Django(ほとんどの主要なプロジェクトと同じ)はあるバージョンから次のバージョンに切り替えることはできませんが、 2.xと3.xの両方をサポートするバージョン。 – delnan

答えて

3

... Python 3への移行が実際に行われるとどうなりますか。

何もありません。そのため、最初にフレームワークを使用しています。あなたが責任を負う必要があるのは、あなたのコードのほんの少しです。will need to be portedです。

2

Django(膨大な量のコードが実行されているため)では、少なくとも近い将来、2.xのサポートを中止しません。それはまったく意味がありません。

いずれのPython 3でも現在導入が難しいです。 PyPyははるかに速くピックアップしています。

そして、いくつかの部分をpython 2のコードに変換するpy2to3があるので、残りは手作業で行う必要があります。

+1

Python 3とPyPyの比較は意味をなさない。それらは完全に正体です:PyPyは、新しいバージョンの言語ではなく、JITコンパイラの上にPython(2.7のように実装されています)の実装です。 –

+0

@DanielRoseman:実際には、PyPyが十分な導入をしていれば、2を進化させることができます。巨大なジャンプをしたくない人のための言語の7つの支店。 – Marcin

1

あなたの古いコードは、そのコードのためにPython 3に切り替える必要がある場合にのみ書き直す必要があります。長時間実行されるプロジェクトの場合、これは起こりそうです。他の多くのプロジェクトでは、それらが死んで廃止されたり、顧客が別の会社に切り替えて維持したりするので、気にする必要はありません。

Python 3で実行する必要のあるコードについては、移植する必要があります。これは、Unicodeとバイナリの両方のデータをどれだけ使用しているか、いくつのPython内部に依存しているかによって、非常に簡単で難しくなります。

私は、典型的なDjangoプロジェクトは移植が非常に簡単だと思います。

移植の詳細については、http://python3porting.comを参照してください。

関連する問題