2016-12-01 3 views
-2

При запуске питона сценариев из командной строки, иногда приходится использовать такие опции, как:Что такое значение параметров командной строки для питона из окна командной строки (пример: -i, -m)

script.py 
python script.py 
python -m script.py 
python -i script.py 

Что делают эти варианты? Где я могу найти полный список этих параметров?

Я спрашиваю, потому что я написал gui, используя tkinter, и когда я запускаю его, используя один из первых двух методов выше, я получаю ImportError для tkinter, но опция -i работает нормально. Могу ли я написать скрипт python, который по умолчанию использует какой-либо параметр (-i), когда он запускается?

EDIT: Вот отслеживающий относительно моего ImporError: он дает имя файла, а затем:

import tkinter 
ImportError: No module named tkinter 

Я использую Python 3.5.2, и эта ошибка не появляется, если я использую

python -i script.py 
+4

попробовать 'питон --help' – furas

+0

если вы' ImportError' оных полное сообщение об ошибке (обратное прослеживание) в вопросе. Решение проблемы с 'ImportError' может быть более полезным для вас, а затем информацией о параметрах. Может быть, у вас другая проблема - т.е. если вы используете Python2, тогда вам нужно импортировать 'Tkinter' вместо' tkinter' – furas

+1

BTW: '-i' означает' интерактивный режим', также называемый 'Python Shell' и обычно бесполезен для запуска программы. – furas

ответ

0

Вы можете получить список всех флагов команды питона и что они делают, набрав

python --help 

В случае tkinter вам нужно запустить флаг -i, потому что он будет работать в «интерактивном режиме». Это позволяет запускать оконное приложение. Помощь говорит, что лучше всего

-i : inspect interactively after running script; forces a prompt even if stdin does not appear to be a terminal; also PYTHONINSPECT=x

Тем временем -m запускает модуль, как если бы это был сценарий.

-m mod : run library module as a script (terminates option list)

+0

Я не совсем понимаю фразу «в случае tkinter, вам нужно запустить флаг« -i ». Вам нужен только флаг '-i', если вы хотите интерактивное поведение. Даже тогда это не сработает, как вы ожидаете. '-i' относительно бесполезен с tkinter. –

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