Есть ли способ запустить скрипт на Python без командной оболочки, появляющейся на мгновение? Присвоение имен моим файлам с расширением.pyw не работает.
РЕДАКТИРОВАТЬ: проблема решена с ShellExecute()
user4910008 27 июл ’16 в 12:07 2016-07-27 12:07
2016-07-27 12:07
4 ответа
Используйте функцию ShellExecuteEx.
BOOL ShellExecuteEx( _Inout_ SHELLEXECUTEINFO *pExecInfo );
Это pExecInfo: ***nShow — флаги, которые определяют, как приложение должно отображаться при его открытии.
typedef struct _SHELLEXECUTEINFO < DWORD cbSize; ULONG fMask; HWND hwnd; LPCTSTR lpVerb; LPCTSTR lpFile; LPCTSTR lpParameters; LPCTSTR lpDirectory; int nShow;/*=0 if you don’t want the console window to appear*/ HINSTANCE hInstApp; LPVOID lpIDList; LPCTSTR lpClass; HKEY hkeyClass; DWORD dwHotKey; union < HANDLE hIcon; HANDLE hMonitor; >DUMMYUNIONNAME; HANDLE hProcess; > SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
user4910008 21 фев ’17 в 09:09 2017-02-21 09:09
2017-02-21 09:09
Попробуйте использовать Питон pythonw.exe исполняемый файл для запуска вашего скрипта.
Как избавиться от консоли Python ✂
В ОС Windows — исполняемые файлы, являющиеся консольными приложениями ( python.exe без w является консольным приложением) запускается с отображением окна консоли; с другой стороны, обычные приложения Windows не порождают это черное консольное окно.
Вы можете найти подробности об этих двух исполняемых файлах в этом старом вопросе: pythonw.exe или python.exe?
user1898234 27 июл ’16 в 12:11 2016-07-27 12:11
2016-07-27 12:11
Во всех установках python начиная с 2.5 (и, возможно, ранее), если установка была выполнена правильно, .py файлы связаны с python.exe а также .pyw файлы связаны с pythonw.exe
Если ассоциации были подделаны или переопределены для конкретного пользователя, это может отличаться.
Запустите следующую команду в cmd:
ftype | find «pythonw» assoc | find «.pyw»
Python.NoConFile=»D:Program FilesPython27pythonw.exe» «%1» %* .pyw=Python.NoConFile
Если у вас этого нет, вы можете сделать несколько вещей, чтобы это исправить:
user6451573 27 июл ’16 в 12:24 2016-07-27 12:24
2016-07-27 12:24
Источник: stackru.com
Интерактивный режим Python (REPL)
У разработчиков на Python есть возможность использовать его в интерактивном режиме. Введенные с клавиатуры операторы сразу же выполняются и результат выводится на экран (в консоль). Такой режим интерпретатора называется REPL (read-eval-print loop). Работает он следующим образом:
- read считывает одно выражение и преобразует его в соответствующую структуру данных;
- eval принимает одну такую структуру и вычисляет соответствующее выражение;
- print принимает результат и печатает его на экран (в консоль).
Грубо говоря, в этом режиме вам не нужно создавать файлы с python-кодом. Все что вы напишете в интерактивном режиме будет сразу же выполнено построчно.
Як запустити #python скрипт на #windows
Интерактивный режим используется редко, но удобен в ряде случаев:
- при изучении языка;
- для быстрого тестирования отдельных фрагментов кода;
- для быстрого запуска простых команд (например для запуска нескольких bash скриптов в цикле через Python);
- для использования интерпретатора в качестве продвинутого калькулятора.
Как запустить интерактивный режим
После того как вы установили Python, достаточно зайти в терминал и выполнить команду python :
Вы вошли в интерактивный режим
Второй вариант — использовать среду разработки IDLE . После запуска IDLE появится окно оболочки Python (Python Shell), в котором можно работать с Python в интерактивном режиме.
Примеры работы в REPL режиме
После того как вы зашли в интерактивный режим, вы можете писать команды на языке python после символа >>>
Например, выведем на экран «hello world»:
>>> print(«Hello, world!») Hello, world!
Рассмотрим пример посложнее:
>>> from random import randint >>> help(randint) Help on method randint in module random: randint(a, b) method of random.Random instance Return random integer in range [a, b], including both end points. >>> numbers = [] >>> for i in range(10): . numbers.append(randint(1, 99)) . >>> print(numbers) [83, 38, 63, 25, 7, 88, 48, 79, 6, 17] >>> numbers.sort() >>> numbers [6, 7, 17, 25, 38, 48, 63, 79, 83, 88] >>>
В данном примере генерируется 10 случайных чисел, после чего сортируются по возрастанию.
Рассмотрим пример по шагам:
- строка from random import randint импортирует функцию randint;
- далее вызывается функция help(randint) отображающая информацию по функции randint ;
- инициализируется список numbers ;
- далее следует цикл от 0 до 9 (После того как вы набрали в консоли for i in range(10): инструкция не выполняется, так как интерактивный режим понимает, что инструкция подразумевает вторую строку с телом цикла. Вместо этого, после того как вы нажали enter курсор переместится на вторую строку);
- в теле цикла генерируем случайные числа и записываем их в список numbers ;
- далее функцией print на экран выводится наш сгенерированный список чисел;
- метод sort сортирует массив по возрастанию;
- последним шагом выводим отсортированный список (в интерактивном режиме можно вместо print(numbers) писать просто numbers ).
Выход из интерактивного режима
Выйти и REPL режима можно комбинациями:
- CTRL-Z + enter — для Windows;
- CTRL-Z или CTRL-D — для Linux и MacOS;
- exit() + enter .
Источник: pythonchik.ru
Использование интерактивной консоли Python
Интерактивная консоль Python (также интерпретатор или оболочка Python) предоставляет программистам быстрый способ выполнить команды и протестировать код, не создавая файл.
Интерактивная консоль предоставляет доступ к истории команд, всем встроенным функциям и установленным модулям Python. Она позволяет использовать автозаполнение, исследовать возможности Python и вставлять код в файлы программирования после проверки.
Этот мануал научит вас работать с интерактивной консолью Python.
Доступ к интерактивной консоли
Доступ к интерактивной консоли Python можно получить с любого локального компьютера или сервера, на котором установлен Python.
Для входа в интерактивную консоль Python используйте команду:
Если вы настроили среду разработки, вы можете получить доступ к консоли внутри этой среды. Сначала запустите среду:
cd environments
my_env/bin/activate
Затем откройте консоль:
- Настройка локальной среды разработки для Python 3 в Ubuntu 16.04
- Установка Python 3 и настройка среды разработки на сервере Ubuntu 16.04
В этом случае по умолчанию используется версия Python 3.5.2, которая отображается на выходе вместе с уведомлением об авторских правах и командами для дополнительной информации:
Поле для ввода следующей команды – три знака больше:
Вы можете указать определенную версию Python, добавив номер версии в команду без пробелов:
$ python2.7
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type «help», «copyright», «credits» or «license» for more information.
>>>
Вывод сообщает, что теперь будет использоваться версия Python 2.7.12. Если бы она была версией Python по умолчанию, открыть её интерактивную консоль можно было бы с помощью команды python2.
Чтобы вызвать интерактивную консоль версии Python 3 по умолчанию, нужно ввести:
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type «help», «copyright», «credits» or «license» for more information.
>>>
Также консоль этой версии можно вызвать с помощью команды:
Работа с интерактивной консолью Python
Интерактивный интерпретатор Python принимает синтаксис Python, который находится после префикса >>>.
Например, он позволяет присваивать значения переменным:
Вы можете присвоить значения нескольким переменным, чтобы обрабатывать математические операции.
>>> birth_year = 1868
>>> death_year = 1921
>>> age_at_death = death_year — birth_year
>>> print(age_at_death)
53
>>>
Как и в файле, в консоли можно задать значения переменных, выполнить математическую операцию и запросить результат.
Интерактивную консоль можно использовать как калькулятор.
Многострочный код Python в консоли
При создании многострочного кода в консоли интерпретатор Python использует троеточие (…) в качестве вспомогательной строки.
Чтобы выйти из вспомогательной строки, нужно дважды нажать Enter.
Чтобы понять, как это работает, рассмотрите этот код, который задает значения двум переменным и использует условное выражение, чтобы определить вывод.
>>> 8host = ‘8host’
>>> blog = ‘blog’
>>> if len(8host) > len(blog):
. print(‘8host codes in Java.’)
. else:
. print(‘8host codes in Python.’)
.
8host codes in Java.
>>>
В данном случае первая строка длиннее, чем вторая, потому срабатывает первое условие и программа выводит соответствующую строку.
Обратите внимание, при этом нужно соблюдать соглашение об отступах Python (четыре пробела), иначе вы получите сообщение об ошибке:
>>> if len(8host) > len(blog):
. print(‘8host codes in Java.’)
File «», line 2
print(‘8host codes in Java.’)
^
IndentationError: expected an indented block
>>>
Импорт модулей
Интерпретатор Python позволяет быстро проверить, доступны ли те или иные модули в определенной среде программирования. Для этого существует оператор import:
>>> import matplotlib
Traceback (most recent call last):
File «», line 1, in
ImportError: No module named ‘matplotlib’
В данном случае библиотека matplotlib недоступна в текущей среде.
Чтобы установить эту библиотеку, используйте pip.
pip install matplotlib
Collecting matplotlib
Downloading matplotlib-2.0.2-cp35-cp35m-manylinux1_x86_64.whl (14.6MB)
.
Installing collected packages: pyparsing, cycler, python-dateutil, numpy, pytz, matplotlib
Successfully installed cycler-0.10.0 matplotlib-2.0.2 numpy-1.13.0 pyparsing-2.2.0 python-dateutil-2.6.0 pytz-2017.2
Установив модуль matplotlib и его зависимости, вы можете вернуться в интерактивный интерпретатор.
Теперь вы можете использовать импортированный модуль в этой среде.
Выход из интерактивной консоли Python
Закрыть консоль Python можно двумя способами: с помощью клавиатуры или с помощью функции Python.
Чтобы закрыть консоль, можно нажать на клавиатуре Ctrl + D в *nix-подобных системах или Ctrl + Z + Ctrl в Windows.
Также в Python есть функция quit(), которая закрывает консоль и возвращает вас в стандартный терминал.
Функция quit() записывается в историю, а комбинации клавиш – нет. Это следует учитывать при выходе из консоли. Откройте файл истории /home/8host /.python_history
.
age_at_death = death_year — birth_year
print(age_at_death)
octopus = ‘Ollie’
quit()
История консоли Python
Еще одним преимуществом интерактивной консоли Python является история. Все команды регистрируются в файле .python_history (в *nix-подобных системах).
На данный момент файл истории Python выглядит так:
import pygame
quit()
if 10 > 5:
print(«hello, world»)
else:
print(«nope»)
8host = ‘8host’
blog = ‘blog’
.
Чтобы закрыть файл, нажмите Ctrl + X.
Отслеживая историю, вы можете вернуться к предыдущим командам, скопировать, вставить или изменить этот код, а затем использовать его в файлах программы или Jupyter Notebook.
Заключение
Интерактивная консоль Python предоставляет пространство для экспериментов с кодом Python. Вы можете использовать ее как инструмент для тестирования, разработки логики программы и многого другого.
Для отладки файлов программы Python вы можете использовать модуль code и открыть интерактивный интерпретатор внутри файла.
Источник: www.8host.com