Исполнить скрипт питона в Луа

Страницы: 1
RSS
Исполнить скрипт питона в Луа
 
Пытаюсь из кода Lua исполнить питоновский скрипт.
для этого вызываю
Код
os.execute("C:\\py+lua\\parser.py")
на мгновение появляется чёрное окошко, сразу исчезает и ничего не происходит
os.execute возвращает 0.
 
Код
os.execute("C:\\InstallPython\\python.exe" , "C:\\py+lua\\parser.py")
в таком виде происходит только вызов питона, скрипт не выполняется
 
А у Вас в среде "py" - это исполняемый файл?
 
Цитата
kond4r написал:
А у Вас в среде "py" - это исполняемый файл?
Не могу ответить, потому что не знаю.
 
Заработало.
Код
os.execute("C:\\InstallPython\\python.exe C:\\py+lua\\parser.py")
 
Скрипт работает и делает то что нужно, но на каждой итерации вызывается раздражающее окошко cmd.exe:
Код
for i=2000,2018 do
--подготовка настроек для скрипта питона
os.execute("C:\\InstallPython\\python.exe C:\\py+lua\\parser.py")
--работа с данными, полученными питоном
end
os.execute("C:\\py+lua\\parser.pyw") ИЛИ os.execute("C:\\InstallPython\\pythonw.exe C:\\py+lua\\parser.pyw")  не решили проблему.
Видимо, окошко вызывается не питоном, а командой Луа os.execute
Подскажите, что ещё можно сделать, чтобы
ИЛИ избавиться от окошка
ИЛИ заставить его вызываться единожды, а не каждую итерацию как сейчас.
 
Цитата
Let_it_go написал:
Видимо, окошко вызывается не питоном, а командой Луа os.execute
Это "окошко" самого cmd.exe, обычное консольное окно венды говоря по-простому. Избавиться от него нельзя, можно попробовать спрятать. Я когда-то так делал:
1. Скачиваем (откуда гугл подскажет) утилиту cmdow. Нужен только файл cmdow.exe, больше ничего. Его бросаем в любую папку входящую в системный путь, типа c:\windows\system32 или куда вам удобнее.
2. Создаем скрипт оболочки ExecutePythonScript.cmd с содержимым примерно таким:
Код
@cmdow @ /HID
start C:\InstallPython\pythonw.exe C:\py+lua\parser.pyw
В скрипте оболочки слэши одинарные, не двойные (на всякий случай)
3. в луа пишем
Код
os.execute("C:\\SomePath\\ExecutePythonScript.cmd")
По идее должно скрывать окно, но я это последний раз пользовал еще под ХР, не в курсе как работает в современных виндах.
 
Цитата
Let_it_go написал:
Скрипт работает и делает то что нужно, но на каждой итерации вызывается раздражающее окошко cmd.exe:
Код
   for  i =  2000 , 2018   do 
 --подготовка настроек для скрипта питона 
 os.execute ( "C:\\InstallPython\\python.exe C:\\py+lua\\parser.py" )
 --работа с данными, полученными питоном 
 end   
os.execute("C:\\py+lua\\parser.pyw") ИЛИ os.execute("C:\\InstallPython\\pythonw.exe C:\\py+lua\\parser.pyw")  не решили проблему.
Видимо, окошко вызывается не питоном, а командой Луа os.execute
Подскажите, что ещё можно сделать, чтобы
ИЛИ избавиться от окошка
ИЛИ заставить его вызываться единожды, а не каждую итерацию как сейчас.
Если по-английски понимаете, то ответ тут: https://stackoverflow.com/questions/18798044/how-to-avoid-popup-a-window-when-use-os-execute-in-lua

Принятый ответ гласит, что никак. Далее в ответах предлагается пара путей обхода: один с использованием WScript.Shell, другой -- с использованием библиотеки-обёртки над вызовом утилиты командной строки.
Страницы: 1
Читают тему
Наверх