Quotes. Try:
python -c 'import os; print os.environ["PATH"]'
The shell is stripping out the single quotes before the command gets to Python, as you can see with the following command:
echo 'import os; print os.environ['PATH']'
(In fact, you can see by the syntax coloring here that something weird is going to happen.)
Now, why does this happen? The single quotes around PATH end a string and start a new one. Essentially, the shell is parsing it as the following three strings (although without the line breaks):
import os; print os.environ[
PATH
]
And that's what gets passed to Python, which sees PATH as a variable name, and rightly complains that you haven't defined it.
For more information on using your shell, see man bash. ("How do I use my shell?" is not, strictly speaking, a Python question, or even a programming question.)