2015-06-02 3 views
1

Я решаю, устанавливать ли python 3.4 или 2.7 на моем домашнем сервере под управлением Ubuntu Server 14.04.2. Я хочу убедиться, что он поддерживает все наиболее используемые библиотеки python (scipy, numpy, запросы и т. Д.), Но я не уверен, сколько из этих пакетов полностью поддерживает 3.4.Является ли Python 3.4 обратным совместимым для 2.7 программ/библиотек?

Все ли 2,7 упаковки работают на 3,4? Если нет, то каковы различия между этими двумя причинами этих ошибок?

+2

Нет 3.4 не обратно совместим с 2.7 – CoryKramer

+0

для всех 2.7 библиотек/программ? – user2237160

+3

Нет, будут выполняться только пакеты, специально написанные для поддержки обоих Python 2 и 3. –

ответ

1

Незначительные версии python в основном совместимы с обратной связью, однако основные версии не поддерживают обратную совместимость. Существует множество библиотек, которые работают с обоими, но сам язык не гарантирует эту гарантию.

+0

это кажется ужасным решением группы Python, как может существовать какой-либо старый код и работать, если он не совместим с предыдущим? – user2237160

+1

@ user2237160: нет, это не страшно, это прагматично. Языки, такие как Python, постоянно развиваются, а функции устаревают. Эти устаревшие функции могут быть блоком для будущего развития, где они перекрываются. Аналогичная проблема у Ruby была с v1.9. Если разработчики не возьмут этот смелый шаг, тогда язык станет застойным и устаревшим. Несмотря на некоторые благородные усилия, это произошло с Perl 5. Если бы Python не продвинулся вперед, он бы завял и умер. – cdarke

+1

Вперед несовместимые изменения являются неудачными, но иногда необходимо улучшить и развить язык. Считайте, что python имеет только две основные версии (python1 был бета-версией только в том случае, если используется память), так как в 2000 году он выпускается 2.0. Кроме того, с функциональной точки зрения, для активных проектов невероятно просто работать с 2 и 3. Разработчики Python могут " Попросите всех заброшенных проектов работать навсегда. –

4

Нет, будут выполняться только пакеты, специально написанные для поддержки обоих Python 2 и 3.

Можно написать polyglot Python, но для этого требуется усилие от автора библиотеки. Код, написанный для Python 2.7, не будет автоматически работать на Python 3.

Смежные вопросы