7
votes

I am trying to run this code in Pycharm, but I'm getting below error:

TypeError: expected str, bytes or os.PathLike object, not NoneType

This is for windows 10, running on Pycharm, python 3.7

import os
import time
file_path = os.path.join(os.getenv("HOME"), "birth_day_lookup.txt")


def check_birthday():

    lookup_file = open(file_path, 'r')
    today = time.strftime('%d-%B')
    flag = 0
    for entry in lookup_file:
        if today in entry:
            line = entry.split(' ')
            flag = 1
            os.system('notify-send "Today is '+line[1]+' '+line[2]+'\'s Birthday"')
    if flag == 0:
        os.system('notify-send "No birthday for today is listed"')

check_birthday()
3
Can you post the full traceback please? - olinox14
what is the output of print(os.getenv("HOME"))? - eyllanesc
HOME environment variable is not always set in windows: superuser.com/questions/607105/… - ymonad
@eyllanesc output of print(os.getenv("HOME")) would be None - rd45

3 Answers

4
votes

Apparently os.getenv("HOME") would return a Nonetype value if the environment variable doesn't exist. Try os.getenv('HOME', "not found") to be sure. --gives output as "not found" if the env is not available. Rather, you can use os.getcwd() if the .py file exits in the same directory as birth_day_lookup.txt. Hope this helps.

1
votes

Delete .condarc file in location C:\Users\UserName\

0
votes

Python expects that there will be, for example, a string (str) or a PathLike object, which you can read about in the official documentation https://docs.python.org/3/library/os.path.html#module-os.path