Когда я компилирую свой код просто с помощью команды python3 name.py
, он запускается, но затем вся история заканчивается, и я не могу ничего сделать с скомпилированными данными.
Я хочу как-то скомпилировать свою программу в интерпретатор и иметь возможность экспериментировать с данными в этом интерпретаторе. Например, я хочу использовать timeit(function(argument))
с функцией и аргументом, определенными и заданными в моей программе name.py.
решение1
То, что вы ищете, это -i
переключатель. Согласно man-страницам:
-i When a script is passed as first argument or the -c option is
used, enter interactive mode after executing the script or the
command. It does not read the $PYTHONSTARTUP file. This can be
useful to inspect global variables or a stack trace when a
script raises an exception.
Итак, если имя вашего скрипта соответствует name.py
тому, что вам нужно сделать, это запустить:
python3 -i name.py
решение2
Ответ @daltonfury42 - один из способов сделать это, но учтите, что он сначала запустит скрипт, прежде чем перейти в интерпретатор. Другой способ - просто запустить интерпретатор в том же каталоге, что и ваш скрипт, и импортировать его.
$ cat spam.py
def main(*args):
print("Called main() with args: ", args)
if __name__ == "__main__":
main("foo")
$ python3 spam.py
Called main() with args: ('foo',)
$ python3
>>> import spam
>>> spam.main("bar")
Called main() with args: ('bar',)
>>>