TypeError:使用Python 3.7时,int()参数必须是字符串,类似字节的对象或数字,而不是“ NoneType”

我正在尝试运行下面的简单片段

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

我可以理解PORT是s字符串,但是我需要转换为int。为什么我得到错误

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

You don't have an environment variable called PORT.

os.getenv('PORT') -> returns None -> throws exception when you try to convert it to int

在运行脚本之前,请通过以下步骤在终端中创建环境变量:

export PORT=1234
点赞
评论
aet
aet

It is highly likely that, you forgot to export PORT. Hence there's no PORT in the env, hence it returns None.

os.getenv(key) returns None if it cannot find a key in the environment
有关模块os中的功能getenv的帮助:      getenv(key,默认=无)       获取环境变量,如果不存在则返回None。       可选的第二个参数可以指定备用默认值。       键,默认值,结果为str。
点赞
评论