Подтвердить что ты не робот

Новый проект: Python 2 или Python 3?

Я запускаю новое программное обеспечение с открытым исходным кодом на Python, и мне интересно, следует ли использовать Python 2.x или Python 3.x.

Он будет включать тяжелый графический интерфейс, сложные научные алгоритмы, касающиеся больших объемов данных. Мне понадобятся, по крайней мере, Numpy, Scipy, PyQT4, PyOpenGL, h5py, необязательный Matplotlib. Сначала он должен быть выпущен в 2013 году с обновлениями и расширениями в течение следующих нескольких лет.

Он будет использоваться учеными, которые не обязательно имеют опыт работы в области компьютерных наук, на самых разных компьютерах (Linux, Windows, Mac...). Некоторые машины могут быть старыми.

Если я выберу Python 3.x, я опасаюсь, что программное обеспечение и сторонние библиотеки могут быть сложнее установить, особенно в старых системах, где уже установлен Python 2.x. Было бы лучше, если бы RPM-подобные пакеты (или установщики Windows) для Python и внешних библиотек были доступны в большинстве систем, так что не нужно компилировать все. Кроме того, я не знаю, достаточно ли развита ветка 3.x.

Если я выберу Python 2.x, мне может понадобиться перенести программное обеспечение на Python 3.x в ближайшем будущем, если ветка 2.x станет устаревшей (когда это произойдет?).

Каким будет лучший вариант?

4b9b3361

Ответ 1

Python 3. (Ответ на этот вопрос изменился!)

Python 2 предназначен для старых проектов. Новые проекты должны опираться на Python 3.

Причиной этого является то, что Python 3 (теперь 3.6) примерно каждый год выпускает новую версию. Он также стабилен в течение многих лет (находится в десятом выпуске!). Напротив, Python 2 (все еще 2,7) мало изменился за последние несколько лет и будет продолжать застаиваться.

Для получения дополнительной информации: https://wiki.python.org/moin/Python2orPython3/

Ответ 2

В этой вики обсуждается именно ваш вопрос: Должен ли я использовать Python 2 или Python 3 для моей разработки?

Это очень большая субъективная часть этого вопроса, которая зависит от конкретной ситуации и ограничений.

IMO, однако, если вы не можете быть уверены, что все сторонние библиотеки, которые вам нужны, будут работать с Python v3.x Я бы придерживайтесь Python 2.x, но старайтесь писать код как можно более совместимый с Python 3.x(например, print() и т.д.), так что если вам когда-либо понадобится или вы хотите перейти на v3, ваша работа не будет такой испытывающий. И, конечно, есть документация и инструменты на переход от версии 2 в 3. И это на переносит код v2 на v3.

Это особенно относится к системам, в которых вы не имеете контроля или не можете устанавливать более новые версии Python или настраивать установку сторонних программ/библиотек.

Учитывая, что ваше программное обеспечение будет работать на самых разных системах (Linux, Windows, Mac..) и рядом разных пользователей, я все еще думаю, что v2 в наши дни является общим знаменателем.

Итак, краткое резюме: используйте версию 2.x, но запустите свой код для v3.x

Наконец, если вы поместите эту строку поиска "[python] версия 3 или 2" в поле поиска SO, вы найдете несколько связанных сообщений:

Ответ 3

Я согласен с Левоном.

С этими требованиями я бы не рискнул начать с Python3, но вы должны написать свой код, принимая во внимание как можно больше изменений Python3.

Смотрите этот вопрос Написание кода Python 2.7, максимально приближенного к синтаксису Python 3.x, поскольку это может помочь вам с некоторыми импортными и стандартными стандартами, которые вы можете использовать чтобы сделать ваш код максимально надежным.

Кроме того, если вы работаете в различных системах, вам нужно либо распространять свою версию python в комплекте, либо доверять установке пользователя. Большинство ОС (не-windows) имеют 2,80-кратный уровень Python, и нетребовато для того, чтобы нетехнический пользователь мог обновить до 3.x без возможности взлома системы.