Как запустить скрипт python из интерактивной оболочки IDLE?
Следующее вызывает ошибку:
>>> python helloworld.py
SyntaxError: invalid syntax
Как запустить скрипт python из интерактивной оболочки IDLE?
Следующее вызывает ошибку:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
в окне оболочки IDLE, и это не работает.
Ответы:
Python3 :
exec(open('helloworld.py').read())
Если ваш файл находится не в том же каталоге:
exec(open('./app/filename.py').read())
См. Https://stackoverflow.com/a/437857/739577 для передачи глобальных / локальных переменных.
В устаревших версиях Python
Python2 Встроенные функции: ExecFile
execfile('helloworld.py')
Обычно его нельзя вызвать с аргументами. Но вот обходной путь:
import sys
sys.argv = ['helloworld.py', 'arg'] # argv[0] should still be the script name
execfile('helloworld.py')
Не рекомендуется с версии 2.6: popen
import os
os.popen('python helloworld.py') # Just run the program
os.popen('python helloworld.py').read() # Also gets you the stdout
С аргументами:
os.popen('python helloworld.py arg').read()
Предварительное использование: подпроцесс
import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout
С аргументами:
subprocess.call(['python', 'helloworld.py', 'arg'])
Подробности читайте в документации :-)
Протестировано с этим базовым helloworld.py
:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
exec
для Python3
Окно оболочки IDLE не то же самое, что и оболочка терминала (например, запущенная sh
или bash
). Скорее, это похоже на интерактивный интерпретатор Python ( python -i
). Самый простой способ запустить сценарий в IDLE - использовать Open
команду из File
меню (это может немного отличаться в зависимости от того, на какой платформе вы работаете), чтобы загрузить файл сценария в окно редактора IDLE, а затем использовать команду Run
-> Run Module
(ярлык F5).
sys.argv
в самом начале программы, например, с использованием обычного if __name__ == "__main__"
шаблона.
Run
-> Run with Customized...
(сочетание клавиш Shift + F5), и откроется всплывающее окно, в котором вы можете указать свои аргументы. К сожалению, в настоящее время он их не запоминает, поэтому вы будете вставлять их при каждом запуске.
Попробуй это
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
execFile('helloworld.py')
делает всю работу за меня. Следует отметить, что следует ввести полное имя каталога файла .py, если его нет в самой папке Python (по крайней мере, это так в Windows)
Например, execFile('C:/helloworld.py')
Например:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
subprocess.call(r'c:\path\to\something.py')
у меня не работает. OSError: [WinError 193]% 1 не является допустимым приложением Win32
В IDLE работает следующее: -
import helloworld
Я не знаю, почему это работает, но это так ...
Чтобы запустить скрипт python в оболочке python, такой как Idle, или в оболочке Django, вы можете сделать следующее, используя функцию exec (). Exec () выполняет аргумент объекта кода. Объект кода в Python - это просто скомпилированный код Python. Таким образом, вы должны сначала скомпилировать файл сценария, а затем выполнить его с помощью exec (). Из вашей оболочки:
>>>file_to_compile = open('/path/to/your/file.py').read() >>>code_object = compile(file_to_compile, '<string>', 'exec') >>>exec(code_object)
Я использую Python 3.4. См. Подробную информацию в документации по компиляции и запуску .
Я протестировал это, и это вроде как работает:
exec(open('filename').read()) # Don't forget to put the filename between ' '
В среде Windows вы можете выполнить файл py в командной строке оболочки Python3 со следующим синтаксисом:
exec (open ('абсолютный путь к имени_файла'). read ())
Ниже объясняется, как выполнить простой файл helloworld.py из командной строки оболочки python.
Расположение файла: C: /Users/testuser/testfolder/helloworld.py
Содержимое файла: print ("привет, мир")
Мы можем запустить этот файл в оболочке Python3.7, как показано ниже:
>>> import os
>>> abs_path = 'C://Users/testuser/testfolder'
>>> os.chdir(abs_path)
>>> os.getcwd()
'C:\\Users\\testuser\\testfolder'
>>> exec(open("helloworld.py").read())
hello world
>>> exec(open("C:\\Users\\testuser\\testfolder\\helloworld.py").read())
hello world
>>> os.path.abspath("helloworld.py")
'C:\\Users\\testuser\\testfolder\\helloworld.py'
>>> import helloworld
hello world
Есть еще одна альтернатива (для windows) -
import os
os.system('py "<path of program with extension>"')
В консоли Python можно попробовать следующие 2 способа.
в том же рабочем каталоге,
1. >> импортировать helloworld
# если у вас есть переменная x , вы можете распечатать ее в IDLE.
>> helloworld.x
# если у вас есть функция func , вы также можете называть ее так.
>> helloworld.func ()
2. >> runfile ("./ helloworld.py")
helloworld.py
выглядит?