Почему вы не переключитесь на Python 3.x?
Я спрашиваю об этом по разворачиваемым причинам. Как и в случае, если я пишу решение в python, я чувствую себя обязанным писать в 2.x из-за отсутствия принятия python 3. Это основная ежедневная забота, и я хочу выяснить, что происходит.
Для многих вопросов на основе python люди предоставляют решения, которые просто не работают в python 3.x.
Итак, я задаю вопрос: что помешало вам перейти на python 3.x в вашей личной или рабочей среде? Конверсия script существует, и все же программисты (которые, как правило, самые ранние усыновители всего), похоже, отказываются обновляться.
Почему?
Ответы
Ответ 1
[Редактировать 03/10/2014: Этот ответ теперь устарел. Django некоторое время поддерживал Python 3.]
[Тем не менее, следует также отметить, что сторонние пакеты и расширения django, используемые во многих проектах Django, находятся на разных этапах реализации совместимости Python 3. Более подробную информацию можно найти в веб-сайт пакетов Django, который отслеживает состояния различных проектов.]
Django не переместился на 3.0. Это все, что мне нужно знать.
Вопросы, относящиеся
Большинство ответов в этих вопросах повторяют одни и те же чувства. Помимо Django, слишком много фреймворков/библиотек - WxPython, PyGame, Django и т.д. - еще не приняли его. Я уверен, что, черт возьми, не сделаю ход, пока они не сделают.
Ответ 2
Поскольку основные библиотеки, от которых зависит моя кодовая база, не выпустили версию 3.x. (wxPython, matplotlib, numpy и т.д.)
Таким образом, ответственность идет вверх по течению от моей точки зрения.
Если бы все мои зависимости были совместимы с 3.x, я бы, наверное, сейчас переключился.
Ответ 3
- Скомпилированные сторонние модули не обновлены.
- Разный синтаксис
- Медленные целые числа.
- #python IRC-канал на freenode имеет в своем названии, что его слишком рано переключаться.
Ответ 4
Сторонние инструменты и библиотеки. У меня возникают проблемы с тем, что некоторые вещи работают под 2.6 (не много проблем, заметьте, но некоторые).
Как я вижу, экосистема является одной из самых сильных сторон Python, и к 3.0 в этот момент выбивается много всего из окна. (Через год я уверен, что история будет совершенно другой.)
(Очевидно, здесь есть проблема с курицей и яйцом, но, к счастью, это не моя проблема для решения, поэтому я останусь с 2.6 на некоторое время.)
Ответ 5
Для многих вопросов на основе python люди предоставляют решения, которые просто не работают в python 3.x.
Думаю, вы ответили на свой вопрос здесь. Отсутствие обратной совместимости делает 3.0 намного сложнее, чем простое обновление, потому что вам нужно настроить свое мышление и отказаться от некоторых методов программирования, чтобы использовать новую версию.
Перезвоните мне, когда у меня есть обновление script для моего мозга.
Ответ 6
Потому что установка по умолчанию 2.5 на Mac OSX Leopard работает нормально. Мне не нужно обновляться, и я не вижу преимуществ для обновления, кроме конца проблем с unicode.
Ответ 7
Если вам интересно перейти на Py3k, одним интересным способом было бы написать код в Py3k и использовать 3to2 script, который сейчас записывается как часть проекта Google Summer проекта кода в строках 2to3 script.
Ответ 8
В самой операционной системе, которую я использую больше всего, Debian не имеет пакета Python 3, даже в "нестабильной" (новой) ветке. Если я сам ее не скомпилирую (это уже 20-й век), это значит, что мне не Python3.
Я уверен, что это одна и та же проблема со многими операционными системами.
Ответ 9
К сожалению, по той же причине, что и большинство других, - сторонние библиотеки до сих пор не были совместимы с 3.0.
По этой причине, а также некоторые дистрибутивы GNU/Linux (Ubuntu в моем случае) по-прежнему поставляются с Python 2.6, я не могу полностью выбросить 2.x из окна.
Однако изменение 3.0 не является основным IMO. За исключением того, что "печать" является функцией и новой системой форматирования строк, она действительно более или менее такая же, как и раньше.
Фактически, я обнаружил, что большинство моих старых сценариев (те, которые не зависят от 3.0 несовместимых сторонних библиотек) будут работать безупречно в версии 3.0 после обновления всех отпечатков и форматирования строк. В некоторых случаях мне также пришлось менять имена модулей (в частности, материалы из модуля "email" ), но кроме этого ничего не значимо.
Кроме того, все сценарии, которые я обновил для совместимости с 3.x, до сих пор все еще работают безупречно в 2.6 (но не старше 2.x, конечно, поскольку им не хватает нового синтаксиса 3.x).
Ответ 10
Основная причина, по которой я не переключаюсь, заключается в том, что так много книг и веб-сайтов, посвященных кодированию, все равно 2.x. Я установил 3.x и понял очень быстро, что мне пришлось удалить и перейти к 2.x.
Ответ 11
Из-за отсутствия обратной совместимости переключение затруднено, особенно если есть C-код. И хотя я понимаю, что unicode/string вещь может быть очень полезной для некоторых людей, я, конечно, не забочусь о ней сам.
В принципе, Py3k не решал многие проблемы, которые меня волнуют (проблемы с дистрибутивом, моделирование версий модулей, упрощенная модель импорта).
Ответ 12
Python 3+ не поддерживает numpy.
Исправление: теперь это делает. Поскольку теперь он поддерживает mathplotlib.