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