Compile (but do not run) a Python script
Question:
I want to check a script for syntax errors. In both 2.x and 3.x, how can I compile the script without running it?
Answers:
py_compile — Compile Python source files
import py_compile
py_compile.compile('my_script.py')
One way is to do something like this (for test.py
):
python -c "__import__('compiler').parse(open('test.py').read())"
This works for Python 2.x.
You can use pylint to find syntax errors as well as more subtle errors, such as accessing undefined variables in some rarely-used conditional branch.
python -m py_compile script.py
I want to check a script for syntax errors. In both 2.x and 3.x, how can I compile the script without running it?
py_compile — Compile Python source files
import py_compile
py_compile.compile('my_script.py')
One way is to do something like this (for test.py
):
python -c "__import__('compiler').parse(open('test.py').read())"
This works for Python 2.x.
You can use pylint to find syntax errors as well as more subtle errors, such as accessing undefined variables in some rarely-used conditional branch.
python -m py_compile script.py