Os.environ вызывает KeyError(key) из NonePython

Программы на Python
Ответить
Anonymous
 Os.environ вызывает KeyError(key) из None

Сообщение Anonymous »

Я создаю программу для работы с базами данных с графическим интерфейсом и экспериментирую с тем, как разместить файл .db в папке, отличной от папки сценария. Я использую Python 3.7. Вот функция, которую я использую:

Код: Выделить всё

def get_database_file():
dir_path = os.path.join(os.environ[''], 'test_database')
if not os.path.exists(dir_path):
os.makedirs(dir_path)
file_path = os.path.join(dir_path, 'test_database.db')
if not os.path.exists(file_path):

try:
conn = sqlite3.connect(file_path)
conn.execute("PRAGMA foreign_keys = 1")

except sqlite3.Error as err:
if conn:
conn.rollback()  # reverse any changes before the commit

print("SQLite Error: %s" % err.args[0])
sys.exit(-1)

else:
createDatabase(file_path)
print("Finish database created")
finally:
if conn:
conn.close()
else:
return file_path

if os.stat(file_path) == 0:
print("Empty")
else:
print("Not Empty")
return file_path
Когда я помещаю os.environ['APPDATA'], эта функция работает нормально, без каких-либо ошибок. Но когда я помещаю os.environ['HOME'], появляется это сообщение об ошибке:

Код: Выделить всё

Traceback (most recent call last):
File "C:/Users/jojot/PycharmProjects/CreateDatabase/gui_database.py", line 4214, in 
database_file = get_database_file()
File "C:/Users/jojot/PycharmProjects/CreateDatabase/gui_database.py", line 4178, in get_database_file
dir_path = os.path.join(os.environ['HOME'], 'test_database')
File "C:\Users\jojot\AppData\Local\Programs\Python\Python37-32\lib\os.py", line 678, in __getitem__
raise KeyError(key) from None
KeyError: 'HOME'
Я не понимаю, что я сделал не так.


Подробнее здесь: https://stackoverflow.com/questions/628 ... -from-none
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»