Кто-нибудь знает, сколько времени пройдет, прежде чем «почти все» широко используемые библиотеки Python начнут работать с Python 3.0?
Я планирую остаться на 2.X какое-то время, потому что я не хочу начинать портировать вещи заново, а затем обнаруживаю, что какая-то библиотека, на которую я уже полагаюсь, или новая библиотека, которую я мог бы начать использовать, еще не работает с py3k.
Насколько я понимаю, процесс бета-тестирования py3k был разработан специально для того, чтобы дать разработчикам библиотек время на то, чтобы перенести свой материал. Это происходило?
Примеры библиотек, о которых я говорю, - это PIL, numpy / scipy, SQLAlchemy, BeautifulSoup, CherryPy ...






Приведенные вами примеры, вероятно, будут перенесены очень быстро, поскольку они так широко используются.
Я был бы удивлен, если BeautifulSoup займет больше месяца (на самом деле, я удивлен, что он еще не был перенесен с использованием бета-версий py3k), более сложные вещи, такие как numpy, могут занять больше времени, особенно потому, что 2to3 работает только на python исходники, а не модули C ..
Трудно обобщить - некоторые модули могут никогда не быть портированы, некоторые могут занять дни, другие могут занять годы. Это может закончиться ситуацией вроде «ну, я не портирую свою библиотеку на Python3, никто ее не использует!» / «Ну, я не портирую свой проект на python3, библиотеки еще не обновлены! ", но я надеюсь, что нет!
Я сказал, что портирование numpy может занять «больше времени» ... хотя вы правы, я был немного излишне оптимистичен ... Я не думаю, что даже BeautifulSoup был портирован (я переместил проект, в котором использовал его, в ElementTree из-за этого)
Некоторые комментарии, которые я видел в репозитории CherryPy, заключаются в том, что некоторые изменения в модуле сокетов потребуют обширной переработки логики. Я ожидаю, что CherryPy будет медленнее, чем некоторые другие проекты, которые будут перенесены на 3.0.
Фактически, ответ на ваш вопрос зависит от действий стольких разных людей (всех разработчиков библиотек за пределами Python std lib), что я думаю, что никто не может дать вам надежный ответ на ваш вопрос.
Тем не менее, у вас уже были некоторые ответы, и у вас будет больше. Однако мы согласны в одном: как правило, я обычно предлагаю не переносить важные проекты (в основном, связанные с работой) на новые технологии разработки (Python 3, .Net 3.x и т. д.) До тех пор, пока они не появятся. ответы, как на ваш, уже были даны, и многие из начальных ошибок были исправлены.
А вот для домашних или тестовых проектов я готов к обновлениям и экспериментам.
Общая идея плана миграции - остаться на 2.x, а затем постепенно изменить код на 3.x. У вас будет на наименее 1,5 года, чтобы беспокоиться об этом. Конечно, есть проблема с курицей и яйцом.
Я помню, как Адриан (BFDL из django) сказал, что Гвидо дал им 5 лет на перенос.
Упомянутые вами библиотеки будут перенесены, как только кто-то серьезно потратит время на их перенос.
В конкретном случае NumPy / SciPy большая часть кода написана как расширения C. Для расширений C не существует инструмента 2to3, поэтому для переноса кода в формат, который необходимо использовать расширениям C cPython3, потребуется много человеко-часов.
По состоянию на 01.05.2013 все упомянутые вами библиотеки теперь поддерживают Python 3:
Работа по переносу идет постепенно; некоторые основные библиотеки, такие как Django, были портированы сравнительно недавно.
Думаю, вы поспешили заявить, что NumPy скоро будет портирован. Прошло шесть месяцев, и он все еще не был полностью перенесен на 2.6.