Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   Как удобно работать с Python? (http://forums.kuban.ru/f1024/kak_udobno_rabotat-_s_python-7799187.html)

gulik 06.06.2016 13:46

Как удобно работать с Python?
 
Здравствуйте.

Сейчас надо написать web-приложение (не сайт), но надо работать через браузер. На стороне клиента будет использоваться ajax без JQ, т.к. не будет требоваться никаких красивостей и прочего. Но потребуется постоянный ввод данных на стороне клиента и обмен с сервером (по определенным причинам без перезагрузки формы, а только обновление значений и, максимум, перерисовка body части документа). Это для информации, т.к. тут мне пока все понятно.
На стороне сервера предполагаю использовать PHP и уже некий прототип написан и работает как надо. Т.к. надо, чтобы этот проект можно было использовать с различными языками (русский, английский ..., китайский, японский и т.д.), то лишний раз озаботился о возможности выполнения этого требования на обеих сторонах, перечитал много, в т.ч. на иностранных сайтах. Сложилось мнение, что если буду работать через UTF-8 на обеих сторонах, то проблем не будет. Разве что если буду производить работу со строками в PHP, то могут быть проблемы с русским, китайским и т.д. языками, если не буду использовать специальные функции для строк с мультибайтовым представлением символов. И, как следствие этой проблемы - работа с массивами со строковыми значениями. Пока эту проблему со счетов сбрасываю, т.к. всю такую обработку строк планирую реализовать в БД, где кодировку выберу utf8_binary, а в случае если потребуется разные регистры сравнивать, то прежде буду приводить к одному в запросах. Тут я тоже, полагаю, на верном пути.
Но пока я штудировал информацию, то много раз попадалась информация, если сказать одной фразой, которую я один раз прочитал, якобы PHP "был создан, чтобы постепенно умирать", а вот Python - самое то, в том числе и для web-разработки. В добавок почитал обзоры и аналитику, и сложилось впечатление, что объективно так и есть: шустрее, удобнее в программировании (хоть и с особенностями) и можно использовать не только для web. По синтаксису посмотрел - вполне устраивает и нормальная поддержка строк с мультибайтными символами (если вдруг потребуется). Стал пробовать ...
Тут надо дополнительно сообщить, что у меня Ubuntu 14.04 LTS. Установил Python3 (зачем же со 2-ой разбираться, если уже есть 3-я, тем более, что они несовместимы). Тут стали проявляться неоднозначности. В системе уже был установлен Python2, т.к. немало система зависит от приложений питона этой версии. Поэтому, если сменить версию питона по умолчанию на 3-ю, то появляются сообщения о проблемах в системе (было, попробовал, но откатил обратно). Выходит, чтобы выполнить код, написанный под 3-ий питон надо явно указать, каким интерпретатором он должен выполняться. Но указать это для веб сервера пока не дошел как (Apache2) - понял, что надо это как-то настраивать через virtualenv. И еще - надо предварительно исходники компилировать. До отладки web-кодирования на питоне даже еще не дошел.
В общем, пока удалось имеющийся рабочий прототип на PHP переложить на Python2 (3-ий не срабатывает по вышеуказанным причинам), в попытке попрактиковаться и получить личный опыт, но с каким трудом это далось! Созрел на этот пост и попросить сообщества, стоит ли это все того, чтобы дальше "рыть"? Или остановиться на PHP?
Основные вопросы к Python у меня:
1. Как на Ubuntu без заморочек использовать обе версии: 2 и 3?
2. Обязательно ли всегда компилировать исходник, чтобы хотя бы протестировать через web.
3. Отладка, это я полагаю, как раз нужно, чтобы исходники не были скомпилированы, что противоречит предыдущему пункту-вопросу. Но вообще еще не подошел к этой теме.

Вполне может быть, что по питону и, в частности, в плане web-разработки на нем у меня в голове "каша" :-). Весьма рассчитываю с вашей помощью эту ситуацию прояснить для себя. Стоит ли и тогда чем вооружиться или оставить это. Спасибо!

economist 09.06.2016 10:39

Оставайтесь на PHP. Питон красавчег, но все описанное - на PHP реализуемо.

Baydak 09.06.2016 11:21

[quote=Гюли;42257705]1. Как на Ubuntu без заморочек использовать обе версии: 2 и 3?[/quote]
Для 3го питона используйте команду python3. Можно еще alias настроить, если надо. Как-то вот так:

$ python -V
Python 2.7.8
$ python3 -V
Python 3.5.0
$ alias python=python3
$ python -V
Python 3.5.0

git_Punish 12.06.2016 15:43

посмотрел бы в сторону метеора...как раз то что надо под описанную задачу

gulik 15.06.2016 10:04

Добрый день.
economist - Да, я за это время еще по питону почитал, попрактиковался - он красавчик :-). Но как-то пока сложновато получается с ним у меня в плане удобства работы и отладки. Пока останусь на PHP.
Baydak - спасибо за советы. Нормально подошло virtualenv, хотя и на критику наткнулся этого метода, но для моего случая как раз подходит.
git_Punish - можно подробнее, что за метеор. Поискал - попались ссылки на некий интернет-магазин метеор.

40KHYTbIU 15.06.2016 15:52

[url]https://www.jetbrains.com/pycharm/features/[/url]
Для веба требе денежку или 30 дней триала

economist 20.06.2016 11:31

Есть Pycharm Education Edition

gulik 24.06.2016 14:19

40KHYTbIU, economist - Спасибо. Я как раз когда еще по питону читал, практиковался, то находил PyCharm. Качать пока не стал. Буду иметь в виду, если понадобится.

economist 27.06.2016 12:47

Сам выбрал бесплатный IDE PyScripter. Немного его похвалю:

0) Просто распаковывается на С вместе с PortablePython (250 Мб), причем можно динамически линковаться к ЛЮБОМУ установленному Питону, переменные окружения меняются НА ЛЕТУ.
1) Все окна настраиваются и масштабируются удобнейшим образом - скроллингом мыши
2) Можно изолировать IDE от интерпретатора (надежность) или использовать напрямую.
3) Есть файлы-шаблоны для кода, модулей, классов, файлов итп. Нажми Ctrl+N...
4) Уже есть библы: NymPy SciPy Matplotlib PyWin32 NetworkX Lxml PySerial PyODBC PyQt IPython Pandas
5) Щелчок по чему угодно открывает объект (модуль, кроме встроенных os re итп) или офлайн-справка (ENG) к Питону
6) Автодополнение всего Ctrl+SPACE, подсказка (F1, Alt+D, ), проверка синтаксиса! Внизу вкл Переменные - это
7) Офигенная пошаговая отладка с заходом/выходом/обходом!!! Другие IDE курят в сторонке
8) Можно юзать сборку в Linux под Wine!
9) Есть также IDLE IDE (штатная неудобная фигня) и QtDesigner (см папку)
10) Есть автогенератор HTML/PDF-документации прямо из текста кода (Инстр..-Исх код-Документация). Аллилуйя!
11) Коммент ставится Ctrl+э при любой раскладке

В общем, это лучшая IDE из всех, которые я видел для всех прочих языков. Настоятельно рекомендую.

gulik 30.06.2016 19:53

economist, спасибо. Гляну. Это, как я сейчас понял, для винды. И надо использовать будет по вайном, как написано в 8-ом пункте? Обязательно гляну.

economist 01.07.2016 15:34

Верно, для Windows, но под вином робэ.

PyCharm не так удобен в отладке и более тяжеловесен, хотя настроек тоже много.

x0577216 06.07.2016 12:46

испкон веков использую связку WINDOUS CURL DELPHI FIREBIRD INDY. Скачиваеся, парсится, показывается, выводятся отчеты.

gulik 08.07.2016 16:30

(11)x0577216 - спасибо. Только это же не имеет отношения к Python, так? Или я в поисковике не на те ссылки попадал, когда искал по этим ключевым словам.

gulik 11.08.2016 09:37

Добрый день.
Решил отписаться, как только снова подошел вплотную к решению своего вопроса. Получилось работать, прямо в точности как мне надо, на PyCharm. У меня отлаживаемые скрипты запускаются в связке nginx+wsgi+скрипт и стал вопрос, как отлаживать python, работая с web, если запущен не из среды разработки.
PyCharm скачал полный, но триальный на 30 дней (не стал у них под всякими предлогами для обучения и т.д. запрашивать без лимита). Перед установкой сменил текущую дату с запасом на несколько лет вперед. После установки вернул обратно. Пока пользуюсь - прокатило, так сказать, уже больше месяца. Хотя при запуске все же ругается. Жму ОК и получается работать дальше.
Мне очень понравился PyCharm. Рекомендую.
Еще раз спасибо всем за рекомендации других сред разработки, хоть и не выбрал для своего случая.

Baydak 15.08.2016 09:13

[quote=Гюли;42705632] У меня отлаживаемые скрипты запускаются в связке nginx+wsgi+скрипт и стал вопрос, как отлаживать python, работая с web, если запущен не из среды разработки. [/quote]
Я делают отладку несколькими способами. Самый простой - расставляю print() в функциях и смотрю консоль после запуска. Второй способ - запуск shell в консоли, импортирую туда нужный модуль и выполняю нужные запросы и скрипты. Третий способ - ставлю точку остановы прямо в функцию
[em]from IPython import embed; embed()[/em]
Выполняю действие для запуска функции в браузер и открываю консоль - интерпритатор остановится именно в том месте, где установлена точка остановы. Можно посмотреть все параметры на текущий момент и проверить те или иные функции. В вирт.окружение необходимо установить IPython
Пользуюсь редактором SublimeText3. Бесплатный, имеет кучу плагинов под любой из языков, плюс плагины, которые позволяют сделать IDE. Даже в репозиторий можно пушить прямо из редактора.

ne555b 19.08.2016 19:36

Baydak, спасибо.

gulik 20.08.2016 18:20

14-Baydak, 15-ne555b >Действительно ..., спасибо, Baydak :-). Думаю, тему можно закрывать.


Текущее время: 01:35. Часовой пояс GMT +3.