2016-07-06 5 views
-1

У меня есть программа проекта,Запуск Python скрипт, без консоли, всенаправленный решение

main.py 

, и я хочу, чтобы иметь возможность выполнить его в 3-х различных способов, в исполняемый/сценарий.

1 py main.py 

2 pyw main.py 

3 py main.py bd/pyw main.py bd 

Если бы только в моей системе, это не было бы проблемой, но она должна быть выполнена в системе, использующей

python3 

вместо

py 

Таким образом, даже если я создаю легкое обходное решение для своей системы, мне все равно пришлось создать второй обходной путь для моего университета или навсегда скопировать материал, если бы я немного изменил его.


В любом случае есть 3 разных сценария, которые запускаются main.py разными способами. Может быть, с каким-то сложным аргументом python, который всегда будет запускать main.py в pyw.

+0

Люблю, как все голосуют за него, даже не говоря мне, почему я заслуживаю низшего голоса. Бьюсь об заклад, они читают «Python без консоли» и думают, «что получили ответы, как 100 раз ... Downvote!» ... Если мне что-то не хватает, пожалуйста, по крайней мере, скажите это. Я прочитал большинство этих вопросов. Я не могу использовать .pyw как окончание, и я не могу просто выполнить его с помощью pyw. –

+0

Вы знаете о переменной '__name__' и/или' sys.argv' ?? – Copperfield

+0

Я использую argv все время и 'if __name __ ==" __main __ ":' почти в каждой из моих программ. –

ответ

0

для сумы, которые выполняют другую суму, посмотрите на subprocess module

, чтобы помочь вам обрабатывать аргументы командной строки, вы можете проверить argparse module, если вы еще не

В любом случае, я вижу 3 случая здесь

1) составляет 3 сумы, по одному для каждого случая и сделать 4 ° один, чтобы выбрать между ними в соответствии с параметрами командной строки, например

case1.py 
case2.py 
case3.py 

и 4 °

#main.py 
... 
if something: 
    import case1 as main 
elif something_else: 
    import case2 as main 
else: 
    import case3 as main 

main.main(...) 

2) имеют свои основные сумы, и сделать 3 другие, которые только работа звонит главный один с необходимыми опциями или импортировать основные и казнили его по мере необходимости

main.py 

и случаи

#caseX.py 
import main 
main.main([options of case X]) 

3) добавить дополнительные параметры командной строки для выбора между вариантами с подходящими значениями по умолчанию

#main.py 
... 
def main(opt): 
    ... 

if __name__=="__main__": 
    options=[] 
    #process argv 
    ... 
    main(options) 
+0

Мне не нужно проверять, является ли это 'python' или' pythonw', и мне не нужно что-то менять, если это либо версия. Мне просто нужна возможность выполнить файл по-разному, с помощью разных сценариев. Один скрипт должен выполнить его с помощью консоли. второй без консоли. Третий должен выполнить его с помощью argv bd. –

+0

Модуль подпроцесса может помочь, но мне действительно нужно работать через него и понимать его, чтобы дать вам отзыв об этом. –

+0

Я добавил некоторые изменения, это больше похоже на то, что вам нужно? – Copperfield

Смежные вопросы