Python os.environ throws key error?
Python os.environ throws key error?
Try running:
find . -name *.pyc -delete
To delete your .pyc
files.
Researching your problem I came across this question, where a user was experiencing the same thing: .get()
seemingly raising a KeyError
. In that case, it was caused, according to this accepted answer, by a .pyc
file which contained code where a dict
value was being accessed by key (i.e., mydict[potentially_nonexistent_key]
), while the traceback was showing the code from the updated .py
file where .get()
was used. I have never heard of this happening, where the traceback references current code from a .py
file, but shows an error raised by an outdated .pyc
file, but it seems to have happened at least once in the history of Python…
It is a long shot, but worth a try I thought.
I encountered a similar error when I set the environment variable without exporting it. So if you do this:
[email protected]:/# NODE_ENV=foo
You will get this:
[email protected]:/# python3
Python 3.8.2 (default, Apr 27 2020, 15:53:34)
[GCC 9.3.0] on linux
Type help, copyright, credits or license for more information.
>>> import os
>>> node_env = os.environ[NODE_ENV]
Traceback (most recent call last):
File <stdin>, line 1, in <module>
File /usr/lib/python3.8/os.py, line 675, in __getitem__
raise KeyError(key) from None
KeyError: NODE_ENV
>>>
But if you do this:
[email protected]:/# NODE_ENV=foo
[email protected]:/# export NODE_ENV
It works:
[email protected]:/# python3
Python 3.8.2 (default, Apr 27 2020, 15:53:34)
[GCC 9.3.0] on linux
Type help, copyright, credits or license for more information.
>>> import os
>>> node_env = os.environ[NODE_ENV]
>>> print(node_env)
foo
>>>
Python os.environ throws key error?
Command for windows to delete the .pyc files:
del /S *.pyc