Скрипт python вызывающий другие скрипты

Вызов скрипта Python с аргументами из другого скрипта Python

Я все еще новичок в Python, поэтому заранее извиняюсь. У меня есть связанные темы на эту тему, но я не нашел лучшего решения. ( Запустите скрипт Python из другого скрипта Python, передав аргументы). В основном, у меня есть скрипт Python (scriptB.py), который принимает файл конфигурации в качестве аргумента и выполняет некоторые действия. Мне нужно вызвать этот скрипт из другого скрипта Python (scriptA.py).

Если бы у меня не было аргументов для передачи, я мог бы просто сделать

Однако все немного усложнилось, потому что нам нужно передать файл конфигурации (mycnofig.yml) в качестве аргумента.

Одним из предложений было использовать;

os.system(python scriptB.py myconfig.yml) 

Но часто сообщается, что это не рекомендуемый подход и что он часто не работает.

Другое предложение было использовать:

import subprocess subprocess.Popen("scriptB.py myconfig.yaml", shell=True) 

Я не очень уверен, является ли это обычной практикой.

Просто хочу отметить, что оба скрипта не имеют основного внутри скрипта.

Посоветуйте, пожалуйста, лучший способ справиться с этим.

3 ответа

Это должно работать просто отлично

subprocess.Popen([‘python’, ‘/full_path/scriptB.py’, ‘myconfig.yaml’], stdout=PIPE, stderr=PIPE)

Если вам действительно нужно запустить отдельный процесс, лучше всего использовать многопроцессорную библиотеку. Я бы сделал фактическую функцию внутри scriptB.py, которая делает эту работу. В приведенном ниже примере я считаю config_handler функцией внутри scriptB.py, которая фактически принимает аргумент пути к файлу конфигурации.

1.) создайте функцию, которая будет обрабатывать вызов вашего внешнего скрипта Python, а также импортируйте ваш скрипт и метод внутри него, который принимает аргументы

scriptA.py: импорт config_handler из scriptB

import multiprocessing from scriptB import config_handler def other_process(*args): p = multiprocessing.Process(*args) p.start() 

2.) Затем просто вызовите процесс и передайте ему свои аргументы:

scriptA.py: вызов функции scriptB.py, config_handler

other_process(name="config_process_name", target=config_handler, args=("myconfig.yml",)) 

Мнение:

Исходя из предоставленной вами информации, я полагаю, вы могли бы сделать это без отдельных процессов. Просто делайте все по порядку и сделайте scriptB.py библиотекой с функцией, которую вы используете в scriptA.py.

Источник

Python запускает другой скрипт Python

Python запускает другой скрипт Python

  1. Используйте оператор import для запуска сценария Python в другом сценарии Python
  2. Используйте метод execfile() для запуска скрипта Python в другом скрипте Python
  3. Используйте модуль subprocess для запуска скрипта Python в другом скрипте Python

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

Скрипты предназначены для непосредственного выполнения на Python. Научиться запускать сценарии и код — это фундаментальный навык в мире программирования на Python. Скрипт Python обычно имеет расширение ‘.py’ . Если сценарий запускается на машине с Windows, он может иметь расширение .pyw .

В этом руководстве будут рассмотрены различные методы запуска сценария Python внутри другого сценария Python.

Используйте оператор import для запуска сценария Python в другом сценарии Python

Оператор import используется для импорта нескольких модулей в код Python. Он используется для получения доступа к определенному коду из модуля. Этот метод использует оператор import для импорта скрипта в код Python и использует его как модуль. Модули можно определить как файл, содержащий определения и инструкции Python.

В следующем коде оператор import используется для запуска сценария Python в другом сценарии Python.

def func1():  print ("Function 1 is active")  if __name__ == '__main__':  # Script2.py executed as script  # do something  func1() 
import Script1.py  def func2():  print("Function 2 is active")  if __name__ == '__main__':  # Script2.py executed as script  # do something  func2()  Script1.func1() 
Function 2 is active Function 1 is active 

Используйте метод execfile() для запуска скрипта Python в другом скрипте Python

Функция execfile() выполняет в интерпретаторе нужный файл. Эта функция работает только в Python 2. В Python 3 функция execfile() была удалена, но то же самое можно сделать в Python 3 с помощью метода exec() .

# Python 2 code execfile("Script1.py") 

Используйте модуль subprocess для запуска скрипта Python в другом скрипте Python

Модуль subprocess может порождать новые процессы, а также может возвращать их выходные данные. Это новый модуль, предназначенный для замены нескольких старых модулей, таких как os.system , которые ранее использовались для запуска сценария Python в другом сценарии Python.

def func1():  print ("Function 1 is active")  if __name__ == '__main__':  # Script2.py executed as script  # do something  func1() 
import subprocess  subprocess.call("Script1.py", shell=True) 

Хотя все три метода работают нормально, этот метод имеет преимущество перед двумя другими методами. В этом методе не требуется редактировать существующий сценарий Python и помещать весь содержащийся в нем код в подпрограмму.

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

Источник

Как запустить скрипт питон из другого скрипта питон?

Как сделать так, что бы из одного скрипта питон запускался другой, с параметрами(a=1 например) и первый скрипт продолжался а после выполнения второй закрывался
нигде не могу найти как это сделать?
Python 3.7

deepblack

Импортируете модуль subprocess

import subprocess subprocess.Popen(['python3', 'script.py', 'argzzz1', 'argzzz2'])

UPD:
Путь к интерпретатору Python3

import sys >>> sys.executable '/usr/bin/python3'

Traceback (most recent call last):
File «tesst.py», line 4, in
subprocess.Popen([‘python3»config.py’],a,b)
File «/usr/local/lib/python3.7/subprocess.py», line 756, in __init__
restore_signals, start_new_session)
File «/usr/local/lib/python3.7/subprocess.py», line 1413, in _execute_child
executable = os.fsencode(executable)
File «/usr/local/lib/python3.7/os.py», line 809, in fsencode
filename = fspath(filename) # Does type-checking of `filename`.
TypeError: expected str, bytes or os.PathLike object, not int
такая ошибка

deepblack

Traceback (most recent call last):
File «tesst.py», line 5, in
subprocess.Popen([‘/usr/local/bin/python3.7′,’config.py’],a,b)
File «/usr/local/lib/python3.7/subprocess.py», line 756, in __init__
restore_signals, start_new_session)
File «/usr/local/lib/python3.7/subprocess.py», line 1413, in _execute_child
executable = os.fsencode(executable)
File «/usr/local/lib/python3.7/os.py», line 809, in fsencode
filename = fspath(filename) # Does type-checking of `filename`.
TypeError: expected str, bytes or os.PathLike object, not int

deepblack

Только что в консоли проверил

[GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> >>> subprocess.Popen(['python3', 'script.py', 'argzzz1', 'argzzz2']) >>> ['script.py', 'argzzz1', 'argzzz2']

Источник

Как вызвать из скрипта другой скрипт python ?

И возник вопрос как запустить скрипт после нажатия (clicked) pushButton ?

Эт основый скрипт в PyQt5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
import sys import script from PyQt5 import QtCore, QtGui, QtWidgets from testt import Ui_Dialog # Create app app = QtWidgets.QApplication(sys.argv) # init Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() # logic def start_my_script(): script() # вызов 2 скрипта ( script.py ) ui.pushButton.clicked.connect( start_my_script ) # Main Loop sys.exit(app.exec_())

Когда запускаю основный скрипт в консоль сразу получаю вывод 2 скрипта. А как только кликаю на кнопку выдает ошибку

test run script # тут я еще не кликнул на кнопку Traceback (most recent call last): # А тут клик произошел File "test.py", line 18, in start_my_script script() TypeError: 'module' object is not callable [2] 4731 abort python3.8 test.py

Как из Python скрипта выполнить другой python скрипт?
Как из Python скрипта выполнить другой python скрипт? Если он находится в той же папке но нужно.

Вызвать скрипт с запросом из скрипта
Доброго времени суток, у меня посылаеться запрос на сервер, допустим GetInfo.php, в нем.

Вызвать скрипт через другой скрипт
Всем привет! Такая ситуация. Есть скрипт 1, который служит для аякс подгрузки новостей. Есть скрипт.

Возможно ли вызвать python-скрипт из html-кода?
Доброго времени суток уважаемые форумчане. У меня такой вопрос: написал свой сайт на html и css.

Эксперт Python

Лучший ответ

Сообщение было отмечено Ser1235q как решение

Решение

ЦитатаСообщение от Ser1235q Посмотреть сообщение

Скрипт нельзя запустить таким образом (скобками — об тебе в ошибке так и написали: ‘module’ object is not callable).
Ты должен импортировать из него функцию и вызвать именно ее.
А чтобы импортировать функцию — ты должен ее написать.
Тупо print(«тра-ля-ля») импортировать низя.

Добавлено через 2 минуты
P.S. Нет, ну, конечно можно вместо script() написать import script и все сработает.
Но это как-то глупо.

Эксперт Python

Garry Galler, скорее всего тс хочет запустить левый скрипт в отдельном потоке.

Этот скрипт можно либо запустить через multithread или subprocess. Но это так себе решение. Как правильно заметил товарищ выше, вы должны импортировать функцию из модуля, и вызвать ее, там где нужно.

Спасибо всем за ответ Да понял, что все это будет грубо говоря костыль ))

Чтобы не плодить темы можете ответить на еще один вопрос как правильно передать параметр для sha256

import hashlib m = "test" test = hashlib.sha256(m) # как сюда передать параметр? тупо написать hashlib.sha256(m) выдает ошибку hex_dig = test.hexdigest() print(hex_dig)

Решил сам этот вопрос
надо просто перед test написать b

Эксперт Python

ЦитатаСообщение от Ser1235q Посмотреть сообщение

Как из php скрипта передать значение в python и получить результат в этот же php скрипт
Нам с товарищем в универе задали выполнить работу, а именно написать матричный калькулятор, я.

Вызвать другой скрипт после отработки основного
Создаю модальное окно с отправкой обработчику на PHP $(document).ready(function() < .

Запуск скрипта на C#, используя другой скрипт на С#
В папке Scripts есть 2 скрипта: EnterMainScene и EnterKeyWait. Мне надо с помощью EnterKeyWait.

Запуск скрипта на C#, используя другой скрипт на С#
В папке Scripts есть 2 скрипта: EnterMainScene и EnterKeyWait. Мне надо с помощью EnterKeyWait.

Стоит ли менять переменные скрипта через другой скрипт?
Вот к примеру я пишу скрипт ИИ, где он передвигается и т.п., до определенного момента этот скрипт.

После выполнения скрипта перестает работать другой скрипт
Здравствуйте, подскажите пожалуйста, как нужно переделать функцию, чтобы работал второй скрипт. .

Из текущего скрипта сделать chroot, а затем запустить другой скрипт
Как из текущего скрипта сделать chroot, а затем запустить другой скрипт? Добавлено через 4 часа.

Источник

Читайте также:  Single page web applications javascript end to end
Оцените статью