Python - Нужно ли начинать новый проект непосредственно в Python 3.x? - PullRequest
6 голосов
/ 17 декабря 2009

Какую версию Python вы можете порекомендовать для долгосрочного (летнего) проекта? Стоит ли использовать 2.6+ или 3.x уже стабильно? (требуются только стандартные библиотеки)

ОБНОВЛЕНИЕ: согласно ответам ниже, в Python 3.x все еще есть критические ошибки. Также смотрите Список ошибок Python .

Ответы [ 6 ]

10 голосов
/ 27 июня 2013

Вот почему вы должны использовать Python 3.x:

Python 2.x:

>>>True = False
>>>True
False

Python 3.x:

>>> True = False
  File "<stdin>", line 1
SyntaxError: assignment to keyword

Источник: Самая странная языковая функция

Предубеждение: Но многие пакеты еще не готовы к работе с Python 3

Это (а) неверно ( источник ) и (б) не важно для начинающего.

4 голосов
/ 17 декабря 2009

Хорошая особенность Python3 состоит в том, что существует автоматический способ переноса ваших программ из Python2. Но программа должна соответствовать определенным критериям.

Я думаю, что лучший подход на данный момент - это написать код Python2 и протестировать его в тестовом режиме Python3 (запустить python -3 program.py). Таким образом, вам не нужно беспокоиться об отсутствующих библиотеках, и вы можете преобразовать свою программу в Python3, как только это станет разумным.

4 голосов
/ 17 декабря 2009

Я думаю, что все сводится к тому, насколько близко вы можете контролировать среду, в которой будет работать ваше приложение. Если вы создаете часть программного обеспечения, в которой ваш клиент будет «устанавливать» python для запуска вашего программного обеспечения, то вы также можете использовать последнюю версию (Python 3.x). Если вы ориентируетесь на существующие установки Python, тогда лучше выбрать совместимость 2.5 или 2.6, поскольку они более распространены.

Python 3.x является стабильным. Это не проблема. Проблема с этим является совместимостью. Если у вас есть возможность использовать самую последнюю и лучшую версию, вам следует использовать новую версию. Для новых проектов 3.x будет очевидным выбором.

4 голосов
/ 17 декабря 2009

В Python 3 нет ничего плохого, но многие библиотеки еще не были портированы. Например, из FAQ по PyGame :

Поддержка Python 3 не завершена и все еще находится в стадии разработки

А из NumPy :

Поддержка Python 3 запланирована, но еще не запланирована.

Все зависит от того, насколько важны для вас сторонние библиотеки, и перенесены ли они еще.

1 голос
/ 17 декабря 2009

THC4k упоминает 2to3 , и я просто хотел отметить, что есть также пакет 3to2 . Я никогда не использовал ни один из пакетов, но я слышал, что 3to2 более щадящий, чем 2to3.

Редактировать: просто хотел подчеркнуть то, что предложили другие: если вы решите использовать один из этих конвертеров для выпуска своего программного обеспечения для версии 2.6 или 3.0, вы, вероятно, захотите использовать надежную систему тестирования (unittest, doctest и т. д.) с приличным тестовым покрытием, чтобы спать спокойно ночью!

0 голосов
/ 17 декабря 2009

Если вы сейчас запускаете свой проект, и все сторонние библиотеки, которые вы хотите использовать, уже портированы на Python 3, а ваша целевая операционная система (я действительно имею в виду дистрибутив linux) упаковывает Python 3, тогда точно.

Продолжайте, используйте Python 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...