Мне нравится разрабатывать внутри ноутбука ipython, но у меня возникает проблема, когда я хочу написать функцию main(), которая читает аргументы командной строки (например, с помощью OptionParser). Я хочу, чтобы иметь возможность экспортировать код в .py-файл и запустить его из командной строки, но я не нашел способ иметь main(), который работает как в ноутбуке с предопределенными аргументами, так и из командной строки с аргументами python и командной строки. В чем секрет?OptionParser в ноутбуке ipython?
В случае, если не понятно, я хотел бы сделать что-то вроде этого:
if __name__ == '__main__':
# if in the notebook
vals = {'debug':True, 'tag_file': 't.tags'}
options = Object()
for k,v in vals.items():
options.setattr(k,v)
args = 'fname1.txt'
# if running as a command line python script
from optparse import OptionParser
parser = OptionParser()
parser.add_option('-d','--debug',action='store_true',dest='debug')
parser.add_option('-t','--tags',action='store',dest='tag_file')
options,args = parser.parse_args()
Я в порядке с этим. Как проверить, работает ли я на IPython или нет? При запуске в командной строке я буду использовать python, а не ipython. – user1427057
Спасибо, учитывая этот намек, я нашел ответ, написав функцию in_ipython() (из столбца stackoverflow). Я перепечатывать код здесь: рядный определение функции in_ipython(): попробовать: __IPYTHON__ кроме NameError: вернуть Ложные еще: вернуть true' – user1427057