Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 31, 2010 17:11:24

dmnBrest
От:
Зарегистрирован: 2010-08-05
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Notepad ++ и python

Перенес это сообщение из другой темы, потому что возник по нему вопроси, который собственно ниже!

—————————————
Сам долго пытался найти ответ на этот вопрос. Перечитано куча форумов и статей. И жаль, что помогли именно буржуи. Почему-то у них принято давать более развернутые и понятные ответы, чем просто пару наводящих слов и типо “дальше ты знаешь”. Сам давно пользуюсь Notepad ++ и считаю его самым лучшим редактором кода (Windows). Проблема была в том, что запускать код потом приходилось из командной строки.
Некоторое время использовал NetBeans, но из-за его громоздкости отказался от этой идеи.
Возвращаясь к Notepad ++, нашел на буржуйском форуме описание как прикрутить Python к консоли Notepad ++. И о чудо все заработало. А рецептом было использование плагина NppExec. (кому интересно курить доки, то они прямо в папке с плагином находятся и придельны понятны).

Короче мой рецепт:
1. Скачивается Notepad ++ Portable (можно прям с флешки запускать)
2. Plugins -> NppExec -> Execute…
3. в окошке пишем python $(FILE_NAME)
4. тискаем Save…, сохраняем
5. Опять Plugins -> NppExec и ставим галочки напротив Save file on execute и Follow $(CURRENT_DYRECTORY)
6. Еще один маленький шаг (но очень важный и приятный) настройка кодировки в консоли (в настройках идем в Plugins -> NppExec -> Consol Output… )

ВСЕ! Редактируем код, тискаем Ctrl+F6 и радуемся отчету в нижней части экрана

Вот вам из редактора получается Python IDE (портативная, легкая и расширяемая)
P.S. Nodepad ++ к тому же имеет целый ряд других полезных плагинов (я например активно использую FTP_synchronize и Zen Coding)

———————————————————-

НАШЕЛ БОЛЬШУЮ ПРОБЛЕМУ!

До этого с этим не сталкивался, но ситуация такая:

Вывод в консоль плагина NppExec происходит только после завершения работы скрипта, т.е. промежуточные выводы (командой print скажем) не видны. Сидишь и смотришь на пустое поле до посинения, а потом БАЦ и все до кучи.

Весьма неприятный момент, особенно учитывая, что из-за него я и перешел с php на python

Может кто сталкивался с этим, есть ли таблетка?



Отредактировано (Авг. 31, 2010 17:12:39)

Офлайн

#2 Авг. 31, 2010 21:07:57

Kogrom
От:
Зарегистрирован: 2009-12-03
Сообщения: 160
Репутация: +  0  -
Профиль   Отправить e-mail  

Notepad ++ и python

Возможно, немножко не в тему, но попробуйте UliPad. Чем-то похож на Notepad++, но заточен для Python. Там встроенная консоль.



Офлайн

#3 Сен. 1, 2010 12:58:24

dmnBrest
От:
Зарегистрирован: 2010-08-05
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Notepad ++ и python

УРА! Еп-тить! :)))))))))))))))))))))))))

Заработал последовательный вывод в консоль Notepad ++ (во время работы скрипта)

!!!!! НАДО в настройке NppExec (F6) указать чтобы интерпретатор вызывался с параметром -i (дословно не могу перевести что он делает, но английские слова в описании понравились :) )

В общем забиваем
python -i $(FILE_NAME)

И ВОТ ТЕПЕРЬ НАСЛАЖДАЕМСЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



Отредактировано (Сен. 1, 2010 12:58:51)

Офлайн

#4 Сен. 2, 2010 02:36:03

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Notepad ++ и python

на счет -i спасибо, мне помогло в соседнем топике и несколько по другой теме



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Сен. 4, 2010 14:27:20

dmnBrest
От:
Зарегистрирован: 2010-08-05
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Notepad ++ и python

В процессе была замечена еще одна особенность поведения консоли при вызове интерпретатора Python с параметром -i

- при окончании работы кода в консоли появляется приглашение питона (>>>) для дальнейшей работы в интерактивном режиме и при последующем запуске кода (Ctrl+F6) вываливается предупреждение что программа еще не завершена и требуется послать Ctrl+C для ее завершение и нового запуска.
В общем не сильная проблема, но неудобства добавляет :(

Найдено решение: в конце кода поставить вызов os._exit(1). Все интерпретатор завершит работу и NppExec торжественно выдаст сообщение
================ Ready =================
о готовности к новому запуску.



Отредактировано (Сен. 4, 2010 14:52:26)

Офлайн

#6 Фев. 1, 2011 21:24:02

basist
От:
Зарегистрирован: 2009-09-05
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Notepad ++ и python

Сделал как описано в первом сообщении, пишет

CreateProcess() failed with error code 2:
Не удается найти указанный файл.

================ READY ================

Подскажите, в чем проблема? и надо ли где-то прикручивать питон к нп++?



Офлайн

#7 Фев. 1, 2011 21:53:59

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Notepad ++ и python

Оффтоп.
Попробуйте Scite, от Notepad++ практически ничем не отличается, на том же движке сделан.



Офлайн

#8 Фев. 1, 2011 22:22:09

basist
От:
Зарегистрирован: 2009-09-05
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Notepad ++ и python

Попробовал.

>pythonw -u "start.py"
>Не удается найти указанный файл.
такое ощущение, что где-то надо директорию прописать…



Офлайн

#9 Фев. 1, 2011 22:34:09

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Notepad ++ и python

basist
такое ощущение, что где-то надо директорию прописать…
откройте python.prorerties и пропишите путь к питону.
Либо просто добавьте путь к питону в PATH системы, это вообще самый кошерный вариант. Не понимаю, почему стандартный инсталлер питона до сих пор этого не делает



Офлайн

#10 Фев. 1, 2011 23:19:36

basist
От:
Зарегистрирован: 2009-09-05
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Notepad ++ и python

igor.kaist, благодарю! Прописал в PATH, помогло, запускается и там и там, но в NP++ теперь такая штука: при нажатии F6, Ctrl+F6 появляется окошко:

чтобы это значило?))

при вводе, например, “q” в консоли:

>>> q
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'q' is not defined
UPD:
это типа программа не закончила своё выполнение? пришлось exit() в консоли написать чтобы там появилось READY :)



Отредактировано (Фев. 1, 2011 23:23:27)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version