Как сохранить, когда Django переключается на Python 3? - PullRequest
6 голосов
/ 02 января 2012

Я нахожусь в процессе изучения Python, и у меня возник вопрос о будущем. Я знаю, что сейчас это не самая насущная вещь, но мне любопытно.

В настоящее время 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 создает какие-либо проблемы фрагментации или проблемы обслуживания кода?

Так что, если бы кто-нибудь попытался объяснить мне, что происходит с этими обновлениями и какие проблемы возникают при их работе, я был бы очень признателен. Спасибо!

Ответы [ 3 ]

3 голосов
/ 02 января 2012

... что происходит, когда фактически происходит переход к Python 3.

Ничего. Вот почему вы используете фреймворк в первую очередь. Все, за что вы должны нести ответственность, это небольшой объем кода, который необходимо будет перенести .

2 голосов
/ 02 января 2012

Django (из-за огромного количества кода, работающего на нем), по крайней мере, в ближайшем будущем не откажется от поддержки 2.x.Это просто не имеет никакого смысла.

Любой Python 3 сейчас испытывает проблемы с принятием;PyPy набирает намного, намного быстрее.

И есть py2to3, который преобразует некоторые части в код Python 2 в Python 3, а затем вы должны сделать все остальное вручную.

1 голос
/ 02 января 2012

Ваш старый код необходимо переписать, только если вы переходите на Python 3 для этого кода.Для долгосрочных проектов это может произойти, для многих других проектов они умрут и устареют, или клиент переключится на другую компанию, чтобы поддержать ее, и, следовательно, вам никогда не придется беспокоиться.

Длякод, который должен работать на Python 3, вы должны портировать его.Это может быть очень просто или очень сложно, в зависимости от того, сколько вы используете как Unicode, так и двоичных данных, и сколько внутренних компонентов Python вы используете.

Я думаю, что типичный проект Django будетпортировать довольно просто.

Для получения дополнительной информации о портировании вы можете увидеть http://python3porting.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...