- Вызов скрипта Python с аргументами из другого скрипта Python
- 3 ответа
- scriptA.py: импорт config_handler из scriptB
- scriptA.py: вызов функции scriptB.py, config_handler
- Мнение:
- Python запускает другой скрипт Python
- Используйте оператор import для запуска сценария Python в другом сценарии Python
- Используйте метод execfile() для запуска скрипта Python в другом скрипте Python
- Используйте модуль subprocess для запуска скрипта Python в другом скрипте Python
- Как запустить скрипт питон из другого скрипта питон?
- Как вызвать из скрипта другой скрипт 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
- Используйте оператор import для запуска сценария Python в другом сценарии Python
- Используйте метод execfile() для запуска скрипта Python в другом скрипте Python
- Используйте модуль 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
Импортируете модуль 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
такая ошибка
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
Только что в консоли проверил
[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.
Сообщение было отмечено Ser1235q как решение
Решение
Сообщение от Ser1235q
Скрипт нельзя запустить таким образом (скобками — об тебе в ошибке так и написали: ‘module’ object is not callable).
Ты должен импортировать из него функцию и вызвать именно ее.
А чтобы импортировать функцию — ты должен ее написать.
Тупо print(«тра-ля-ля») импортировать низя.
Добавлено через 2 минуты
P.S. Нет, ну, конечно можно вместо script() написать import script и все сработает.
Но это как-то глупо.
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
Сообщение от Ser1235q
Как из php скрипта передать значение в python и получить результат в этот же php скрипт
Нам с товарищем в универе задали выполнить работу, а именно написать матричный калькулятор, я.
Вызвать другой скрипт после отработки основного
Создаю модальное окно с отправкой обработчику на PHP $(document).ready(function() < .
Запуск скрипта на C#, используя другой скрипт на С#
В папке Scripts есть 2 скрипта: EnterMainScene и EnterKeyWait. Мне надо с помощью EnterKeyWait.
Запуск скрипта на C#, используя другой скрипт на С#
В папке Scripts есть 2 скрипта: EnterMainScene и EnterKeyWait. Мне надо с помощью EnterKeyWait.
Стоит ли менять переменные скрипта через другой скрипт?
Вот к примеру я пишу скрипт ИИ, где он передвигается и т.п., до определенного момента этот скрипт.
После выполнения скрипта перестает работать другой скрипт
Здравствуйте, подскажите пожалуйста, как нужно переделать функцию, чтобы работал второй скрипт. .
Из текущего скрипта сделать chroot, а затем запустить другой скрипт
Как из текущего скрипта сделать chroot, а затем запустить другой скрипт? Добавлено через 4 часа.