遵循Heroku Python入门教程执行heroku local web出现EISDIR错误
错误引发原因
报错代码EISDIR是操作系统通用错误码,含义为尝试对目录执行仅适用于文件的操作。
结合错误堆栈定位可知,Heroku CLI依赖的foreman组件在执行heroku local web命令时,会默认读取项目根目录下的.env纯文本文件加载本地环境变量;此时你项目根目录下存在的.env是一个目录而非纯文本文件,程序读取失败触发该报错。绝大多数情况下该问题都是因开发者将Python虚拟环境直接命名为.env导致的命名冲突。
解决方法
- 首先进入执行
heroku local web的项目根目录,确认.env的类型:- macOS/Linux执行命令:
ls -ld .env - Windows cmd执行命令:
dir .env
- macOS/Linux执行命令:
- 如果确认
.env是目录,按实际需求处理:- 若该目录是Python虚拟环境:重命名为
venv等常规虚拟环境名称即可,避免和Heroku的配置文件命名冲突 - 若该目录存放其他业务文件:重命名为任意非
.env的名称即可
- 若该目录是Python虚拟环境:重命名为
- 如果你需要配置本地环境变量,新建纯文本格式的
.env文件,按变量名=变量值的逐行格式填写配置即可 - 完成上述操作后重新执行
heroku local web即可正常启动
内容的提问来源于stack exchange,提问作者robbogdan
相关产品推荐
相关产品推荐

