TypeError: аргумент int () должен быть строкой, байтовым объектом или числом, а не NoneType при использовании Python 3.7. - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь запустить простой нижеприведенный фрагмент

port = int(os.getenv('PORT'))
print("Starting app on port %d" % port)

Я понимаю, что PORT - это строка, но мне нужно преобразовать ее в int. Почему появляется ошибка

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Спасибо за комментарии и решения. На самом деле в моей локальной системе не было назначенного порта, и это причина для этого. Вы оба правы.

0 голосов
/ 09 мая 2020

У вас нет переменной среды с именем PORT.

os.getenv('PORT') -> возвращает None -> выдает исключение, когда вы пытаетесь преобразовать его в int

Перед запуская свой скрипт, создайте в своем терминале переменную среды следующим образом:

export PORT=1234

Или вы можете указать порт по умолчанию, если он не определен как переменная среды на вашем компьютере:

DEFAULT_PORT = 1234
port = int(os.getenv('PORT',DEFAULT_PORT))
print("Starting app on port %d" % port)
...