Common problems – permissions and environments
Different computers might run our code under different user accounts, and our application might expect to be able to read a file or write data into a specific directory and hit an unexpected permission error. Even in cases where the user accounts used by our code are all the same (down to the same user ID and group ID), their environment may be different on different hosts. Therefore, an environment variable we assumed to be defined might not be or, even worse, might be set to an incompatible value.
These problems are common when our code runs as a special, unprivileged user, such as nobody
. Defensive coding, especially when accessing the environment, and making sure to always fall back to sensible defaults when variables are undefined (that is, value = os.environ.get('SOME_VAR', fallback_value)
instead of simply value = os.environ.get['SOME_VAR']
) is often necessary.
A common approach, when this is possible, is to only run our applications under...