Runscript – утилита для запуска python скриптов
Примеры Python » Python для начинающих » Запуск программ на Python » Python и запуск програм python запуск скрипта, как запустить python скрипт, скрипты python
Наверное, многим разработчикам знакома ситуация, когда в проекте необходимо совершить определенные действия. Чтобы сделать это мы создаем специальный скрипт на питоне, кладем его в корень проекта и запускаем по необходимости. Таким образом со временем имеем захламленную корневую директорию проекта, чтобы избавится от этого решаем перекинуть все скрипты в отдельную папку и тут нас ждут проблемы.
Если мы указываем интерпретатору python новый путь, в котором содержится наша новая папка, то скрипты не сработают, так как не работают импорты пакетов, расположенные в корне проекта, поскольку в sys.path корня проекта нет. Есть несколько вариантов выхода из такой ситуации. Мы можем сделать маленькую утилиту для запуска скриптов, которая бы перед их стартом меняла sys.path и положить ее в корень. Можно и что-то другое сделать. Но, мне это уже надоело, зачем постоянно изобретать колесо, если можно один раз собрать велосипед и постоянно на нем кататься? Я так и сделал, создал runscript.
Библиотека легко устанавливается через pip:
$ pip install runscript
В результате в вашей системе будет новая команда run, которая и будет запускать скрипты. Со стандартными настройками она будет искать скрипты в папке script каталога в котором вы находитесь на данный момент.
Разберем ее работу на простеньком примере. Делаем папку script. Создадим пустым файлик script/__init__.py, сделав данный каталог python-пакетом. Делаем еще один файлик script/preved.py, внутри пишем:
def main(**kwargs):
print("Preved, medved!")
Теперь у нас есть скрипт, можно запускать:
$ run preved
Preved, medved!
Радуемся, скрипт заработал. Команда очень примитивная неправда ли? Она просто запускает наши скрипты. Казалось бы, какой в этом смысл, но, когда в каждом проекте вам нужно запускать простенькие скрипты, вы сами заметите, что постоянно будете ею пользоваться. Позже к этой утилите было добавлены полезные функции, сейчас поговорим о них.
Получение параметров через командную строку
Если вам необходимо, чтобы скрипт через командую строку получал определенные параметры, необходимо прописать их в setup_arg_parser в самом скрипте. На вход функция получит ArgumentParser, здесь вы указываете необходимые параметры. После вызова скрипта, значения параметров передаются функции main.
Вот простой пример:
def setup_arg_parser(parser):
parser.add_argument("-w", "--who", default="medved")
def main(who, **kwargs):
print("Preved, {}".format(who))
Попробуем запустить:
$ run preved
Preved, medved
$ run preved -w anti-medved
Preved, anti-medved
Активация Django
Пользуетесь фреймворком Django? Значит знаете, что для работы нужно кое-что сделать. А именно – создать environment переменной DJANGO_SETTING_MODULE, где указан путь к настройкам. Как правило, в скрипты питона вписывают:
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "settings"
В Django 1.7 и старше добавляем еще и:
import django
django.setup()
Для автоматизации посредством команды run нам необходимо сделать в корне файлик с настройками – run.ini:
[global]
django_settings_module = settings
django_setup = yes
Где искать скрипты?
Дефолтно утилита будет искать скрип в пакетах script и grab.script. Чтобы изменить такие места в run.ini добавляем следующее:
[global]
search_path = package1.script,foo,bar
Таким образом, выполнив ту же команду «run preved» мы сделаем так, что утилита будет пытаться импортировать модуль preved в таком порядке:
• package1.script.preved
• foo.preved
• bar.preved
Это еще не все функции. Если у вас есть вопросы, можете изучить исходный код
github.com/lorien/runscript/blob/master/runscript/cli.py
Вам необходимо качественное сетевое оборудование? Нужен Cisco Catalyst 3850 на www.vtkt.ru можно его приобрести. У компании огромный выбор сетевого оборудования высокого качества. За годы работы он положительно себя зарекомендовала, выполнена масса ИТ проектов.