How to run a Python script from IDLE command line?

2020-07-16 08:21发布

问题:

In a bash shell, I can use 'bash ' or 'source ' to invoke a script by hand. Can I do the similar thing in the Python IDLE's interactive shell? I know I can go to File >> Open Module, then run it in a separate window, but that's troublesome.

回答1:

One method I have found is execfile. It has the signature execfile(<filename>,<globals>,<locals>) and runs the file in the same thread as the current IDLE Session. This method is Python 2 specific

The method the OP is asking for (in a different thread/window) would be to use subprocess to run in a different thread/window.

import subprocess

#any of these will run the file.  Pick the one that best suits you.

subprocess.call(['python','filename.py'])
subprocess.check_call(['python','filename.py'])
subprocess.Popen(['python','filename.py'])

These essentially do what nneonneo's answer does, but using subprocess to execute it in a different thread.



回答2:

If what you meant is executing in the Python IDLE's interactive shell instead of command prompt or command line, then I usually use this approach:

python -m idlelib.idle -r "C:/dir1/dir2/Your script.py"

It works well with me. Tested on my Windows 10, python 3.7.3.

Please ensure that you have added your desired python version on your environment variables.



回答3:

You can just run a Python script from the commandline:

python <script.py>