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>