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

Leave a Reply

Your email address will not be published. Required fields are marked *