Вызов python без надоедливого окна

Я вызываю python из lua-скрипта следующим образом:

for i=2000,2018 do
--prepare settings file for python
os.execute("C:\\InstallPython\\python.exe C:\\py+lua\\parser.py")
--work with database downloaded by python
end

Все работает нормально, но у меня появляется раздражающее окно каждый раз, когда Lua выполняет скрипт python

1. Черное окно появляется на каждой итерации 2. Черное окно исчезает на каждой итерации.

Как я могу это сделать

1. без открытия окна или 2. вызвать это окно один раз

Lunatic Python не работает для меня из-за проблемы, описанной здесь: https://github.com/bastibe/lunatic-python/issues/67

В Windows, чтобы запустить скрипт python без консоли, вам нужно изменить расширение с .py на .pyc.

Cyphall 13.10.2018 10:07

@Cyphall да, но не уверен, что этого будет достаточно, потому что оболочка lua, вероятно, откроет терминал, несмотря ни на что. OP должен попробуйте использовать расширение .pyw, да, это первое, что нужно сделать, но это может не решить проблему. Если вы хотите сделать это из python, вам нужно использовать подпроцесс и некоторые флаги NOWINDOW, которые я точно не помню, и использовать pyw (или нет), чтобы окно не отображалось

Jean-François Fabre 13.10.2018 10:12

У меня не установлен lua, но я не думаю, что это связано с python. @Kosmonaut, что происходит, когда вы вместо этого пытаетесь открыть "блокнот"? у тебя тоже есть черное окно?

Jean-François Fabre 13.10.2018 10:25

ты пробовал это? stackoverflow.com/questions/1689015/…

Jean-François Fabre 13.10.2018 10:43

os.execute («C: \\ py + lua \\ parser.pyw») и os.execute («C: \\ InstallPython \\ pythonw.exe C: \\ py + lua \\ parser.pyw») не не решаю проблему. Черное окно появляется и исчезает на каждой итерации.

Kosmonavt 13.10.2018 10:51

Помогает ли это решение?

Egor Skriptunoff 13.10.2018 11:12

это должно быть решено со стороны lua: os.execute создает оболочка. Вы должны запустить процесс без, создав оболочку и не открывая окна. Это не зависит от того, какой процесс вы выполняете. ааи дубликат (гугл ваш друг)

Jean-François Fabre 13.10.2018 12:12
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
7
39
0

Другие вопросы по теме