Какую версию Python я должен использовать для разработки веб-приложений? - PullRequest
3 голосов
/ 24 февраля 2010

В настоящее время в моей системе установлен Python 3.1.1, та же версия на моем сервере с WSGI 3.0, работающим в Apache 2.2.

Я хочу продолжать использовать Python 3.1, но обнаружил, что многие библиотеки / фреймворки пока не поддерживают его, а именно Django, Pylons, MySQLdb и т. Д.

Я также проверил свою учетную запись на сервере друга, и он работает под управлением Python 2.3.4 ...

Я хочу написать своего рода приложение типа блога / форума, которое я смогу расширить в CMS, и, в конечном итоге, написать родственные настольные приложения для своего рода долгосрочного любимого проекта.

Я бы хотел использовать новейшую возможную версию Python для лучшей безопасности и максимальной совместимости с будущими настольными приложениями, сохраняя при этом хороший уровень переносимости и поддерживая большинство фреймворков и библиотек, которые я буду использовать. использовать.

Но я заблудился, на какой мне выбрать. Кажется, что 2.4 будет иметь наибольшую переносимость, но она вроде старая, и я не хочу в конечном итоге использовать кучу функций после 2.4, которые не будут компилироваться, и переписывать с более сложным кодом для компенсировать это. 2.6 был бы лучше, но кажется, что многие библиотеки все еще переносятся на это, и 3.1 был бы лучшим, так как он устраняет много беспорядка в языке.

Одна вещь, которую я хотел бы подчеркнуть, это то, что было бы неплохо знать, чего мне не хватать, если я выберу более старую версию Python. Например, если бы мне нужно было, чтобы мое приложение работало на моей старой учетной записи Python 2.3.4 на сервере моего друга, каких библиотек / функций мне не хватало бы, чтобы они существовали в более новых версиях? Какие проблемы, с которыми я бы наверняка столкнулся, заставили бы меня желать Я использовал Python 2.6 или 3.1? Какие из этих функций будут доступны через __future__ import?

Итак, в каком направлении лучше идти? Должен ли я просто использовать 2.6 и справиться с любыми проблемами? Должен ли я перейти на версию 2.4, чтобы максимально увеличить мои возможности по ее распространению в средах общего хостинга? Или я должен просто перейти на 3.1 и иметь слегка поврежденное приложение, пока библиотеки, подобные MySQLdb, не догонят?

Ответы [ 4 ]

4 голосов
/ 24 февраля 2010

На данный момент Python 3 широко не используется в производстве. Зависит от того, для чего вы используете Python. Если это всего лишь один сценарий, все будет в порядке в любом случае, если идея состоит в том, чтобы использовать сторонние модули, модули C и / или безболезненно развертывать их, а затем соглашайтесь на любую из версий 2.4+. Многие проекты стремятся сохранить совместимость 2.3, но у вас не должно возникнуть проблем с использованием 2.4-2.6, поскольку изменения в языке незначительны. Если вы можете, используйте 2.6, так как он ближе всего к Python 3, так как имеет некоторые функции, перенесенные на него.

Проблема с Python 3 - это Catch 22:

  • наиболее полезные сторонние модули по-прежнему не портированы на 3, так как разработчики ждут широкого использования,
  • люди не могут мигрировать, потому что модули, на которые они полагаются, еще не мигрировали, удерживая мудреца на низком уровне.

У вас не должно быть проблем с использованием любого из 2.4-2.6, дайте 3, некоторое время.

Использовать Python 2.6

2 голосов
/ 24 февраля 2010

Начните с Python 2.5, если вы не уверены.

Посмотрите на Google App Engine (на основе Django). Он использует Python 2.5 и это бесплатно. Однако вы не сможете вызывать scipy (например) или любые библиотеки с «C» внутри.

У вас будет наибольшее количество переносимости с Python2.5. Более того, python3k на самом деле не используется в промышленности.

1 голос
/ 24 февраля 2010

"2.6 было бы лучше, но кажется, что многие библиотеки все еще переносятся на это"

Что? Какие библиотеки - которые вам нужны - «все еще переносятся на это»?

"3.1 будет лучшим" ", но я считаю, что многие библиотеки / фреймворки не поддерживают"

Правильно. Вы сказали это дважды в вопросе. Это очень ясно.

«Должен ли я просто использовать 2.6 и решать любые проблемы»

Какие проблемы? У вас есть какие-то конкретные проблемы?

Кажется, это работает очень хорошо. Каковы ваши конкретные проблемы?

0 голосов
/ 14 июля 2011

Для веб-приложений в интрасети мне пришлось установить python 2.5 (из-за сочетания вики, системы отслеживания ошибок и совместимости httpd WSGI). Для пользовательских веб-приложений я стандартизировал на python 3.2. Таким образом я установил оба одновременно. Я пишу для 3.2 и довожу конкретные библиотеки до спецификации по мере необходимости. Однако большие пакеты, которые я не хочу модифицировать, используют свои собственные 2.5. Совместимость между 3.2 и сторонними пакетами все еще является проблемой в настоящее время, как и отсутствие правильных рецептов Python.

В итоге: Установите две версии.

...