Подтвердить что ты не робот

Python os.environ [ "HOME" ] работает на холостом ходу, но не в script

Я работаю над простым Python (2.7.3) script, но мне нужно получить домашнюю папку пользователя. Я пробовал:

import os
home_folder = os.environ["HOME"]

И он отлично работает, когда я запускаю этот код в IDLE, но если я запустил его из cmd, он даст мне: «KeyError: 'HOME'»

Может кто-нибудь сказать мне, почему? Как я могу решить эту проблему?

4b9b3361

Ответ 1

Windows использует USERPROFILE вместо HOME. Windows не имеет HOME, а другие ОС не имеют USERPROFILE, поэтому с использованием любой из этих возможностей независимости от платформы.

Чтобы сохранить независимость от платформы, вы можете использовать expanduser от os.path, например:

import os.path
home_folder = os.path.expanduser('~')

На боковой ноте вы можете использовать print(os.environ), чтобы увидеть все переменные среды, к которым у вас есть доступ, что показывает, что IDLE имеет дополнительные функции.

Ответ 2

В Windows нет переменной среды HOME. Вместо этого он использует USERPROFILE. Чтобы решить проблему, вы можете определить новую команду "HOME" на вашей консоли:

set HOME=%USERPROFILE%

в качестве копии переменной USERPROFILE.

Вы можете проверить, что они идентичны:

echo %USERPROFILE%
echo %HOME%

Он будет работать для текущего сеанса.

Ответ 3

Похоже, вы пытаетесь запустить это в Windows, основываясь исключительно на своем "запуске" его из cmd ". IDLE дает вам это как удобство; в Windows используйте USERPROFILE вместо HOME. %USERPROFILE% envar - это Win32 $HOME.