Як запустити скрипт python з інтерактивної оболонки IDLE?

Як запустити скрипт python з інтерфейсу IDLE?

Нижче наведено помилку:

>>> python helloworld.py
SyntaxError: invalid syntax
66
так, це означає, що щось не так з вашим кодом пост ваш код!
додано Автор Serial, джерело
Ви повинні прийняти відповідь від Неда Дейлі, якщо це відповість на ваше питання правильно. Це також допоможе іншим розробникам швидко визначити правильну відповідь.
додано Автор darth_coder, джерело
Як виглядає helloworld.py ?
додано Автор TerryA, джерело
Ні, не обов'язково. Швидше за все, OP вводить python helloworld.py у вікні оболонки IDLE, і це не працює.
додано Автор Ned Deily, джерело
Він також не працюватиме в стандартному перекладачі. Ця проблема виникла раніше, коли люди помилково думають, що запрошення перекладача є командним рядком.
додано Автор Terry Jan Reedy, джерело
EASIEST WAY: python -i helloworld.py також працює для python3
додано Автор Leonard, джерело

11 Відповіді

Built-in function: execfile

execfile('helloworld.py')

Це нормально не можна назвати з аргументами. Але це обхідний шлях:

import sys
sys.argv = ['helloworld.py', 'arg']  # argv[0] should still be the script name
execfile('helloworld.py')

Deprecated since 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()

Advance usage: subprocess

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])
93
додано
Чи можете ви додати приклад з аргументами командного рядка.
додано Автор ViFI, джерело

Ви можете використовувати це в python3:

exec(open(filename).read())
22
додано
Цей прекрасно працював.
додано Автор Leonard, джерело

The IDLE shell window is not the same as a terminal shell (e.g. running sh or bash). Rather, it is just like being in the Python interactive interpreter (python -i). The easiest way to run a script in IDLE is to use the Open command from the File menu (this may vary a bit depending on which platform you are running) to load your script file into an IDLE editor window and then use the Run -> Run Module command (shortcut F5).

20
додано
На жаль, ні, непросто запустити файл Python в IDLE при передачі аргументів командного рядка. Існує давня проблема, з якою IDLE може це зробити ( bugs.python.org/issue5680 ) . Одним з обхідних шляхів для тестування є вручну ініціалізація sys.argv на самому початку програми, наприклад, під звичайним якщо шаблон __name__ == "__main__" .
додано Автор Ned Deily, джерело
Ця відповідь уточнює, чому ми не можемо запускати скрипт python за допомогою оболонки IDLE. Завдяки @NedDeily
додано Автор arsho, джерело
Але ви не можете передати аргументи. :(
додано Автор Erica Kane, джерело

Спробуйте це

import os
import subprocess

DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')

subprocess.call(['python', DIR])
5
додано

execFile('helloworld.py') does the job for me. A thing to note is to enter the complete directory name of the .py file if it isnt in the Python folder itself (atleast this is the case on Windows)

For example, execFile('C:/helloworld.py')

4
додано

Наприклад:

import subprocess

subprocess.call("C:\helloworld.py")

subprocess.call(["python", "-h"])
2
додано
subprocess.call (r'c: шлях до \ t OSError: [WinError 193]% 1 не є дійсною програмою Win32
додано Автор Terry Jan Reedy, джерело
Спробуйте цей імпортований імпортозалежний підпроцес DIR = os.path.join ('C: )
додано Автор Sergey Nosov, джерело

Щоб запустити скрипт 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, '', 'exec')
>>>exec(code_object)

Я використовую Python 3.4. Див. компіляцію і exec для докладнішої інформації.

1
додано

НАЙКРАЩИЙ ШЛЯХ

python -i helloworld.py  #Python 2

python3 -i helloworld.py #Python 3
0
додано

Я перевірив це, і він ніби працює:

exec(open('filename').read())  # Don't forget to put the filename between ' '
0
додано
спасибі за цитату рада, це працювало для мене. Upvoted.
додано Автор CppLearner, джерело

У Python 3 немає execFile . Можна використовувати вбудовану функцію exec . , наприклад:

import helloworld
exec('helloworld')
0
додано

В IDLE діють такі роботи: -

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

import helloworld
</div> </div>

Я не знаю багато чого про те, чому він працює, але це не так.

0
додано
те, що ви робите, завантажуєте модуль, який не виконується з оболонки. одна відмінність між двома полягає в:
додано Автор tanweer alam, джерело
ІТ КПІ - Python
ІТ КПІ - Python
625 учасників

Канал обговорень про всякі штуки зі світу пайтону. Прохання: 0. мати повагу одне до одного; 1. не матюкатися в сторону людей; 2. не захламляти тред повідомленнями по одному слову;