Когда большинство библиотек будет совместимо с 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, были недавно перенесены.