Запуск программы через консоль python

Здесь я планирую размещать небольшие статьи на интересующие меня темы.

воскресенье, 8 сентября 2013 г.

Запуск Python программы открепленной от консоли

Иногда бывает так, что нужно что бы программа выполнялась в фоне т.е. не была бы привязана к тому месту откуда была вызвана, например при написании демонов на UNIX системах и сервисоподобного ПО в Windows системах. Вопросы создания процесса и его поведения достаточно отличаются в этих ОС. В случае с UNIX достаточно такого распространенного приема как «Magic double fork».

В случае с Windows ОС дело обстоит сложнее, одним из вариантов является превратить процесс в службу (service) Windows, для этого можно воспользоваться библиотекой pywin32, которая за вас реализует цепочку вызовов Windows API. Однако это библиотека достаточно тяжела и избыточна функционалом, если необходимо решить только заданную задачу. Суть варианта, рассматриваемого далее, состоит в том что на этапе инициализации (т.е. до запуска основного кода) происходит запуск дочерней идентичной программы и выходу из родительской. Таким образом дочерняя программа продолжает выполнение не имея стандартных потоков ввода/вывода.

Как запускать программы на Python файлы .py в Windows 10

Примечание для Windows: Для корректной работы кода Python интерпретатор должен быть прописан в переменной окружения PATH, что бы его можно было вызвать из командной строки Windows

#!/usr/bin/python
# -*- coding: utf-8 -*-
import optparse, os, sys, platform, subprocess

class Main(object):
def __init__(self):
# Парсер аргументов командной строки
parser=optparse.OptionParser( ‘Demo of cross-platform detouch console’ )
parser.add_option( ‘-v’ , ‘—verbose’ , action= ‘store_true’ , default=False, help= ‘Verbose ouput to stdout.’ )
parser.add_option( ‘-s’ , ‘—silence’ , action= ‘store_true’ , default=False, help= ‘Be silence, no any output to stdout and stderr’ )

# Опция ниже является «флагом» указывающим что произошел перезапуск программы открепленной от консоли.
parser.add_option( ‘—windows-daemon’ , action= ‘store_true’ , default=False, help=optparse.SUPPRESS_HELP)

# В случае если платформа ОС LINUX/UNIX то выполняем «magic double fork»
if platform.system()== ‘Linux’ :
# set daemon via magic double fork
try:
pid=os.fork()
if pid>0:
sys.exit(0)
except OSError, e:
print ‘fork #1 failed: <> <>’ .format(e.errno, e.strerror)
sys.exit(1)

# Do second fork
try:
pid=os.fork()
if pid>0:
print ‘Daemon PID <>’ .format(pid)
sys.exit(0)
except OSError, e:
print ‘fork #2 failed: <> <>’ .format(e.errno, e.strerror)
sys.exit(1)
else:
# Если аргумент командой строки не задан значит программа вызывается первый раз,
# следовательно, выполняем перезапуск указывая необходимый алгоритм.
if not self.options.windows_daemon:
p=subprocess.Popen([sys.executable or ‘python’ ]+sys.argv+[ ‘—windows-daemon’ ], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
time.sleep(2)
if p.poll()!=None:
print p.stderr.read()
print p.stdout.read()
exit(1)
exit(0)

Источник: john16blog.blogspot.com

Читайте также:
Программа для настройки модема телеофис

Как запустить программу питон через консоль?

Чтобы запустить «Пайтон» в интерактивном режиме, надо набрать в командной строке (cmd) имя интерпретатора — python (иногда это python3) либо запустить интегрированную среду разработки IDLE. Чтобы выполнить запуск в пакетном режиме, надо ввести в командной строке имя интерпретатора, плюс имя файла.

Как запустить Питон в консоле?

Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.

Как запустить код через консоль?

  1. В Windows нажать комбинацию клавиш «Флажок» + «R», после чего ввести команду cmd и нажать на кнопку «ОК» в диалоговом окне.
  2. В Linux или других подобных операционных системах доступ к командной строке предоставляется с помощью дополнительной программы.

Как установить питон через консоль?

  1. Откройте командную строку Windows, запустив cmd.exe.
  2. Введите pip и нажмите «Enter»
  3. Вы увидите справочный текст менеджера пакетов Python под названием “pip”.

Как открыть Python файл из командной строки?

Командная строка в верхней части меню «Пуск», чтобы открыть Командную строку. Перейдите к расположению файла Python. Введите cd и нажмите пробел, после чего введите адрес «Расположение» файла Python и нажмите ↵ Enter .

Как запустить код Python в Visual Studio?

  1. Установите Расширение прогона кода
  2. Откройте файл кода Python в текстовом редакторе, затем используйте ярлык Ctrl+Alt+N или нажмите F1 , а затем выберите/введите Run Code , код будет запущен, и вывод будет отображаться в окне вывода.

Как запустить код в PyCharm?

Насколько я знаю, PyCharm имеет 2 способа запуска скрипта в консоли: 1) Выберите кучу кода и нажмите Ctrl + Alt + E . 2) сохраните код в файле и импортируйте его из консоли.

Как открыть файл py?

  1. В Windows: Python, Microsoft Notepad, Notepad++, Sublime Text, codeEditor, Любой другой текстовый редактор
  2. В Mac OS: MacroMates TextMate, Любой другой текстовый редактор
  3. В Linux: GNU Emacs, gedit, Любой другой текстовый редактор

Как запустить программу в IDLE?

Для запуска IDLE в Windows необходимо перейти в папку Python в меню “Пуск” и найти там ярлык с именем “IDLE (Python 3.5 XX-bit)”. В результате IDLE будет установлен на ваш компьютер.

Как запустить код в Visual Studio?

  1. Для сборки проекта выберите в меню Сборка пункт Собрать решение. Окно Вывод отображает результаты процесса сборки.
  2. Чтобы запустить этот код, в строке меню выберите Отладка и Запуск без отладки. Открывается окно консоли, и запускается ваше приложение.

Как установить PIP на питон?

  1. Скачайте установочный скрипт get-pip.py. Если у вас Python 3.2, версия get-pip.py должны быть такой же. .
  2. Откройте командную строку и перейдите к каталогу с файлом get-pip.py.
  3. Запустите следующую команду: python get-pip.py.

Как установить Python и PyCharm?

  1. Скачивание и установка Python. .
  2. Запускаем скачанный .exe файл. .
  3. Дальше выбирайте верхний (простой) способ установки.
  4. Дальше начнется процесс установки:
  5. По окончанию установки закрывайте окно установщика. .
  6. Запускаем скачанный .exe файл. .
  7. Дальше надо указать место установки среды:
  8. Важный момент!

Как открыть файл с помощью командной строки?

Для этого найдите ту папку, в которой хранится исполняемый файл, и нажмите по ней правой кнопкой мыши, при этом зажав и удерживая клавишу «Shift». Дальше в контекстном меню выберите «Открыть окно команд». После этого в командной строке сразу откроется нужная нам папка.

Читайте также:
Программы для чип тюнинга автомобилей через k line

Как войти в командную строку в Windows 10?

Нажмите правую кнопку мыши на кнопке Пуск (или сочетание клавиш WIN + X) и выберите пункт Командная строка (администратор) в открывшемся меню.

Как запустить python файл через консоль Ubuntu?

Если вы используете последний, щелкните правой кнопкой мыши и выберите «Open In Terminal». Когда терминал открывается, введите «sudo chmod + x Yourfilename». После ввода пароля введите «python./Yourfilename», который откроет ваш файл python в командной строке. Надеюсь, это поможет!

Источник: chelc.ru

Python: запустить функцию из командной строки

С -c (команда) аргумент (при условии, что ваш файл называется foo.py ):

$ python -c ‘import foo; print foo.hello()’

альтернативно, если вы не заботитесь о загрязнении пространства имен:

$ python -c ‘from foo import *; print hello()’
$ python -c ‘from foo import hello; print hello()’
автор: Frédéric Hamidi

просто поставить hello() где-то ниже функции и он будет выполняться, когда вы делаете python your_file.py

для более аккуратного решения вы можете использовать это:

if __name__ == ‘__main__’: hello()

таким образом, функция будет выполняться только при запуске файла, а не при импорте файла.

автор: Wolph

python -c ‘from myfile import hello; hello()’ здесь myfile необходимо заменить базовым именем вашего скрипта Python. (Напр., myfile.py становится myfile ).

однако, если hello() ваша «постоянная» основная точка входа в ваш скрипт Python, тогда обычный способ сделать это выглядит следующим образом:

def hello(): print «Hi :)» if __name__ == «__main__»: hello()

это позволяет выполнить скрипт, просто запустив python myfile.py или python -m myfile .

некоторые объяснения здесь: __name__ — специальная переменная Python, которая содержит имя модуля в настоящее время выполняется,за исключением когда модуль запускается из командной строки, в этом случае он становится «__main__» .

автор: Tamás

Я написал быстрый маленький скрипт Python, который вызывается из командной строки bash. Он принимает имя модуля, класса и метода, который вы хотите вызвать, и параметры, которые вы хотите передать. Я называю его Пирун и перестал .py расширение и сделал его исполняемым с chmod +x PyRun, так что я могу просто назвать его быстро, как следовать:

./PyRun PyTest.ClassName.Method1 Param1

сохраните это в файле под названием PyRun

#!/usr/bin/env python #make executable in bash chmod +x PyRun import sys import inspect import importlib import os if __name__ == «__main__»: cmd_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( inspect.currentframe() ))[0])) if cmd_folder not in sys.path: sys.path.insert(0, cmd_folder) # get the second argument from the command line methodname = sys.argv[1] # split this into module, class and function name modulename, classname, funcname = methodname.split(«.») # get pointers to the objects based on the string names themodule = importlib.import_module(modulename) theclass = getattr(themodule, classname) thefunc = getattr(theclass, funcname) # pass all the parameters from the third until the end of # what the function needs Hello» ./PyRun PyTest.SomeClass.Second (Hello, World)

обратите внимание на последний пример экранирования скобок для передачи кортежа в качестве единственного параметра второму методу.

если вы передадите слишком мало параметров для того, что нужно методу, вы получите ошибку. Если вы проходите слишком много, он игнорирует дополнительные. Модуль должен быть в текущей рабочей папке, поставить PyRun можно в любом месте на вашем пути.

Читайте также:
Прекращена работа программы террария

автор: Joseph Gagliardo

интересно, что если целью была печать на консоль командной строки или выполнение какой-либо другой минутной операции python, вы можете передать ввод в интерпретатор python следующим образом:

echo print(«hi:)») | python

а также трубные файлы..

python < foo.py

*обратите внимание, что расширение не должно быть.py для второго, чтобы работать. ** Также обратите внимание, что для bash вам может потребоваться избежать символов

echo print(«hi:)») | python
автор: Torie J

Если вы устанавливаете пакет runp с pip install runp не работает:

runp myfile.py hello

вы можете найти репозиторий по адресу:https://github.com/vascop/runp

автор: vascop

давайте сделаем это немного проще для себя и просто использовать модуль.

попробуй: pip install compago

тогда используйте так:

$ python test.py hello hi there! $ python test.py goodbye see ya later.

Примечание:ошибка в Python 3 на данный момент, но отлично работает с Python 2.

Edit: еще лучший вариант, на мой взгляд-это модуль пожар от Google, что позволяет легко также передавать аргументы функции. Это установлен с pip install fire . Из их GitHub:

вот простой пример.

import fire class Calculator(object): «»»A simple calculator class.»»» def double(self, number): return 2 * number if __name__ == ‘__main__’: fire.Fire(Calculator)

затем из командной строки, вы можете запустить:

python calculator.py double 10 # 20 python calculator.py double —number=15 # 30
автор: Charles Clayton

У меня было требование использовать различные утилиты python(range, string и т. д.) в командной строке и написал инструмент pyfunc специально для этого. Вы можете использовать его, чтобы обогатить опыт использования командной строки:

$ pyfunc -m range -a 1 7 2 1 3 5 $ pyfunc -m string.upper -a test TEST $ pyfunc -m string.replace -a ‘analyze what’ ‘what’ ‘this’ analyze this
автор: Saurabh Hirani

эта функция не может быть запущена из командной строки, так как она возвращает значение, которое не будет обработано. Вы можете удалить возврат и использовать print вместо

автор: Shubham

это всегда возможность ввести python в командной строке с помощью команды python

затем импортируйте файл так импорт example_file

затем выполнить команду example_file.hello ()

Это позволяет избежать странного .функция копирования pyc, которая появляется каждый раз при запуске python-c и т. д.

возможно, не так удобно, как одна команда, но хорошее быстрое исправление текста файла из командной строки и позволяет использовать python для вызова и выполнения файла.

автор: user2495144

что-то вроде этого: call_from_terminal.py

# call_from_terminal.py # Ex to run from terminal # ip='»hi»‘ # python -c «import call_from_terminal as cft; cft.test_term_fun($)» # or # fun_name=’call_from_terminal’ # python -c «import $ as cft; cft.test_term_fun($)» def test_term_fun(ip): print ip

это работает в bash.

$ ip='»hi»‘ ; fun_name=’call_from_terminal’ $ python -c «import $ as cft; cft.test_term_fun($)» hi
автор: Al Conrad

ниже Odd_Even_function.py файл с определением функции.

def OE(n): for a in range(n): if a % 2 == 0: print(a) else: print(a, «ODD»)

теперь, чтобы вызвать то же самое из командной строки ниже, параметры работали для меня.

опции 1 Полный путь к exepython.exe-c «импорт Odd_Even_function; Odd_Even_function.OE (100)»

2 Полный путь к exepython.exe-c «из Odd_Even_function импортировать OE; OE(100)»

Источник: askdev.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru