Werkzeug в целом и в Python 3.1

Я очень усердно искал все способы ** (s) **, с помощью которых можно разрабатывать веб-приложения с использованием Python. Для справки, мы используем RHEL 64bit, apache, mod_wsgi.

История:

  1. PHP + MySQL лет назад
  2. PHP + Python 2.x + MySQL недавно и актуально
  3. Python + PostgreSQL работаем над этим

Мы используем отличную библиотеку для связи между PHP и Python (интерфейс на PHP, серверная часть на Python).

Обычно мы предпочитаем не иметь монолитной структуры, диктующей, как что делать. Коллекция полезных помощников и утилит гораздо предпочтительнее (будь то PHP или Python).

Вопрос 1:

Прочитав ряд ответов опытных пользователей Python, я несколько раз видел рекомендации Werkzeug. Я был бы рад, если бы несколько человек, имеющих непосредственный опыт использования Werkzeug для разработки профессиональных веб-приложений, могли бы прокомментировать (настолько подробно, насколько позволяют их пальцы), почему они используют его, почему он им нравится и на что следует обратить внимание.

Вопрос 2:

Есть ли версия Werkzeug, поддерживающая Python 3.1.1. Я успешно установил mod_wsgi на Apache 2.2 с Python 3.1.1.

Если версии нет, что нужно, чтобы обновить ее для работы на Python 3.1?

Примечание. Я запустил 2to3 в исходном коде Werkzeug, и он компилирует python без

Редактировать:

Проект, который мы начинаем, планируется завершить только через год. В этот момент я предполагаю, что Python 3.X станет намного более популярным. Кроме того, учитывая, что мы запускаем приложение (а не распространяем его), может ли кто-нибудь прокомментировать жизнеспособность решения некоторых проблем Python 3 сейчас, чтобы, когда наступит год, мы более или менее уже там ?

Мысли оценены!


person gahooa    schedule 06.10.2009    source источник
comment
Слишком поздно отвечать подробно, но очень кратко: мне нравится, потому что он богатый, но полностью модульный, не нашел никаких ошибок, и я не пробовал его ни в одной версии Python 3 (есть ли интерфейс PostgreSql? для Python 3.* еще...?).   -  person Alex Martelli    schedule 06.10.2009
comment
Собственно, это одна (из многих) причин, по которой мы пытаемся использовать Python 3.x: python.projects .postgresql.org отличный драйвер Python, разработанный для Python 3.   -  person gahooa    schedule 06.10.2009


Ответы (3)


mod_wsgi для Python 3.x тоже не готов. Удовлетворительного определения WSGI для Python 3.x пока нет; WEB-SIG все еще решает проблемы. mod_wsgi нацелен на догадки о том, что может быть в нем, но очень вероятно, что будут изменения как в спецификации, так и в стандартных библиотеках. Любое веб-приложение, которое вы пишете сегодня на Python 3.1, скорее всего, сломается в будущем.

Это немного руины. Сегодня для веб-приложений реально использовать только Python 2.x.

person bobince    schedule 06.10.2009
comment
Python WEB-SIG вполне может продолжать спорить об этом, но и mod_wsgi, и сервер CherryPy WSGI собираются выпустить для Python 3.X, используя то, что стало стандартом де-факто для WSGI на Python 3.X. Модуль wsgiref в Python 3.X также использует то же самое и поэтому отчасти теперь является стандартом де-факто. См. 'code.google.com/p/modwsgi/wiki/SupportForPython3X. . - person Graham Dumpleton; 07.10.2009
comment
О радость. Какой полный бардак. Не то чтобы в предлагаемом стандарте «де-факто» (*) есть что-то неправильное, но в чем Python-on-the-web действительно не нуждается, так это в большей фрагментации. *: ну, за исключением возможности возвращать исходные строки в кодировке ISO-8859-1, что кажется несчастным случаем. И до сих пор нет решения проблемы PATH_INFO, но потом я отказался от того, чтобы кто-нибудь когда-либо исправлял это... - person bobince; 07.10.2009
comment
Привет бобинка. Просто напомню, что теперь мы вполне функциональны на Python 3 и mod_wsgi. Мы будем следить за стандартом по мере его затвердевания и при необходимости корректировать. Но в следующем году будет написано много нового кода приложений, который не нужно будет переделывать позже. - person gahooa; 26.10.2009

Я не использовал Werkzeug, поэтому могу ответить только на вопрос 2:

Нет, Werkzeug не работает на Python 3. Фактически, на сегодняшний день очень мало работает на Python 3. Портировать несложно, но вы не можете портировать, пока не будут портированы все ваши сторонние библиотеки, поэтому прогресс идет медленно.

Одним из больших препятствий был setuptools, который является очень популярным пакетом для использования. Setuptools не поддерживается, но есть поддерживаемая вилка под названием Distribute. Всего неделю или две назад был выпущен дистрибутив с поддержкой Python 3. Я надеюсь, что поддержка пакетов для Python 3 теперь возобновится. Но пройдет еще много времени, по крайней мере, месяцы, а может, год или около того, прежде чем какой-либо крупный проект, такой как Werkzeug, будет перенесен на Python 3.

person Lennart Regebro    schedule 06.10.2009

Могу ответить только на один вопрос:

Я начал использовать его для некоторых небольших веб-материалов, но теперь перешел к переделке более крупных приложений. Почему Werkzeug? Модульная концепция действительно полезна. Вы можете подключать модули по своему усмотрению, делать вещи легко зависящими от контекста, и вы бесплатно получаете хорошую обработку файлов запросов, которая способна справиться с файлами размером более 300 МБ, не сохраняя их в памяти.

Недостатки... Ну, иногда модульность требует некоторого предварительного обдумывания (django f.ex. дает вам все сразу, хотя там сложно что-то убрать), но для меня это работает нормально.

person Jokey    schedule 25.10.2009