I am working on a simple Python (2.7.3) script, but I have to get the user's Home Folder. I tried:
import os
home_folder = os.environ["HOME"]
And it works fine when I'm running this code on IDLE, but if I launch it from the cmd, it gives me: «KeyError: 'HOME'»
Can someone tell me why? How can I solve this problem?
Sounds like you're trying to run this on Windows based entirely on your "[launching] it from the cmd". IDLE is giving you that as a convenience; on Windows use
USERPROFILE
instead ofHOME
. The%USERPROFILE%
envar is the Win32$HOME
.Windows uses
USERPROFILE
, instead ofHOME
. Windows doesn't haveHOME
and other OSs don't haveUSERPROFILE
, so using either of these drops platform independence.To keep platform independence, you can use
expanduser
fromos.path
, like so:On a side note, you can use
print(os.environ)
to see all the environment variables you to have access to, which shows thatIDLE
has extras.Windows has no HOME environment variable. It uses USERPROFILE instead. To solve the problem you can define a new variable "HOME" typing on your console:
as a copy of the USERPROFILE variable.
You can check that they are identical typing:
It will work for the current session.