Я также хотел запускать файлы python напрямую из Notepad ++.
Наиболее распространенная опция, найденная онлайн, использует встроенную опцию Run
. Тогда у вас есть два варианта:
Запуск файла python в консоли (в Windows это Командная строка ) с кодом, подобным this (ссылки: ):
C:\Path\to\Python\python.exe "$(FULL_CURRENT_PATH)"
(Если ваше окно консоли закрывается сразу после запуска, вы можете добавить cmd /k
к вашему коду . Ссылки: ) Это прекрасно работает, и вы даже можете запускать файлы в интерактивном режиме , добавив -i
на ваш код (ссылки: ).
Запуск программы на Python в IDLE с кодом, похожим на this (ссылки: , в этих ссылках используется C:\Path\to\Python\Lib\idlelib\idle.py
, но вместо этого я использую C:\Path\to\Python\Lib\idlelib\idle.bat
, поскольку idle.bat
автоматически устанавливает правильный текущий рабочий каталог):
C:\Path\to\Python\Lib\idlelib\idle.bat "$(FULL_CURRENT_PATH)"
На самом деле, это не запускает вашу программу в IDLE Shell , но вместо этого открывает файл python в IDLE Editor , а затем вам нужно нажать Run Module
(или нажмите F5), чтобы запустить программу. Таким образом, он открывает ваш файл в IDLE Editor , а затем вам нужно запустить его оттуда, что не позволяет запускать файлы python из Notepad ++.
Но при поиске в Интернете я нашел опцию, которая добавляет '-r' к вашему коду (ссылки: ):
C:\Path\to\Python\Lib\idlelib\idle.bat -r "$(FULL_CURRENT_PATH)"
Это запустит вашу программу на Python в Оболочка IDLE и, поскольку она находится в режиме IDLE, по умолчанию она находится в интерактивном режиме.
Проблема с запуском ваших файлов Python через встроенную Run
опцию заключается в том, что
каждый раз, когда вы запускаете свой файл python, вы открываете новую консоль или окно IDLE и теряете все результаты предыдущих выполнений. Это может быть не важно для некоторых, но когда я начал программировать на python, я использовал Python IDLE , поэтому я привык запускать файл python несколько раз в одном окне оболочки IDLE . Также проблема с запуском программ на Python из Notepad ++ заключается в том, что вам нужно вручную сохранить файл и затем нажать Run
(или нажать F5). Для решения этих проблем (AFAIK *) необходимо использовать плагины Notepad ++. Лучший плагин для запуска файлов Python из Notepad ++
NppExec . (Я также пытался PyNPP и Python Script . PyNPP запускает файлы python в консоли, это работает, но вы можете сделать это без плагина через встроенный * Опция 1156 * и Python Script используются для запуска сценариев, которые взаимодействуют с Notepad ++, поэтому вы не можете запускать файлы python.) Чтобы запустить файл python с помощью NppExec , подключите вас нужно перейти к Plugins -> NppExec -> Execute
и затем ввести что-то вроде this (ссылки: ):
C:\Path\to\Python\python.exe "$(FULL_CURRENT_PATH)"
С помощью NppExec вы также можете сохранить файл python перед запуском с помощью команды npp_save
, установить рабочий каталог с помощью cd "$(CURRENT_DIRECTORY)"
команда или запуск программы python в интерактивном режиме с помощью -i
команда . Я нашел много ссылок ( ) онлайн, в которых упоминаются эти опции, но лучше всего использовать NppExec для запуска программ на Python, которые я нашел в Руководстве NppExec , в котором есть глава 4.6.4. Running Python & wxPython
с этим код
npp_console - // disable any output to the Console
npp_save // save current file (a .py file is expected)
cd "$(CURRENT_DIRECTORY)" // use the current file's dir
set local @exit_cmd_silent = exit() // allows to exit Python automatically
set local PATH_0 = $(SYS.PATH) // current value of %PATH%
env_set PATH = $(SYS.PATH);C:\Python27 // use Python 2.7
npp_setfocus con // set the focus to the Console
npp_console + // enable output to the Console
python -i -u "$(FILE_NAME)" // run Python's program interactively
npp_console - // disable any output to the Console
env_set PATH = $(PATH_0) // restore the value of %PATH%
npp_console + // enable output to the Console
Все, что вам нужно сделать, это скопировать этот код и изменить каталог python, если вы используете какую-то другую версию python (например, * Я использую python 3.4, поэтому мой каталог C:\Python34
). Этот код работает отлично, но есть одна строка Я добавил к этому коду, чтобы я мог запускать программу на Python несколько раз без потери предыдущего вывода:
npe_console m- a+
a+
- включить режим «добавления», который сохраняет текст предыдущей консоли и не очищает его.
m-
отключает внутренние сообщения консоли (отображаются зеленым цветом)
Последний код, который я использую в окне выполнения NppExec:
npp_console - // disable any output to the Console
npp_save // save current file (a .py file is expected)
cd "$(CURRENT_DIRECTORY)" // use the current file's dir
set local @exit_cmd_silent = exit() // allows to exit Python automatically
set local PATH_0 = $(SYS.PATH) // current value of %PATH%
env_set PATH = $(SYS.PATH);C:\Python34 // use Python 3.4
npp_setfocus con // set the focus to the Console
npe_console m- a+
npp_console + // enable output to the Console
python -i -u "$(FILE_NAME)" // run Python's program interactively
npp_console - // disable any output to the Console
env_set PATH = $(PATH_0) // restore the value of %PATH%
npp_console + // enable output to the Console
Вы можете сохранить код NppExec и назначить сочетание клавиш для сценария этого NppExec. (Вам необходимо открыть Дополнительные параметры плагина NppExec , выбрать свой сценарий в раскрывающемся списке Associated script
, нажать Add/Modify
, перезапустить Блокнот ++ перейдите в Блокнот ++ es Settings
-> Shortcut Mapper
-> Plugin commands
, выберите сценарий, нажмите Modify
и назначьте горячую клавишу . Я хотел бы поставить F5
в качестве моей горячей клавиши, для этого вам нужно заменить горячую клавишу для встроенной опции Run
на что-то еще в первую очередь.) Ссылки на главы из Руководство NppExec , в котором объясняется, как сохранить код NppExec и назначить сочетание клавиш: NppExec's "Execute..."
, NppExec's script
.
P.S. *: С плагином NppExec вы можете добавить Highlight Filters
(находится в Console Output Filters...
), который выделяет определенные строки. Я использую его, чтобы выделить строки ошибок красным цветом, для этого вам нужно добавить Highlight masks
: *File "%FILE%", line %LINE%, in <*>
и Traceback (most recent call last):
как это .