Heroku部署Python项目报错No module named torch问题咨询
问题排查及解决方案
核心原因
- 你使用的torch wheel包
https://download.pytorch.org/whl/cpu/torch-1.3.1%2Bcpu-cp36-cp36m-linux_x86_64.whl仅适配Python3.6版本,未指定Heroku Python运行版本时,Heroku默认使用更高版本Python,无法安装cp36标记的wheel包,torch实际未安装成功,运行时提示No module named 'torch'。 - requirements.txt中的
wincertstore==0.2是Windows平台专属依赖,在Heroku的Linux环境下安装该包会抛出异常,可能导致整个依赖安装流程中断,后续的torch包不会被安装。 - 直接硬编码固定版本的wheel链接兼容性极差,只要环境的Python版本、架构有微小变动就会安装失败。
修复步骤
- 在项目根目录新建
runtime.txt文件,写入内容python-3.6.15,指定Heroku使用和torch wheel匹配的Python3.6版本。 - 删除requirements.txt中的
wincertstore==0.2行,移除Windows专属依赖。 - (推荐)将requirements.txt中直接写torch wheel链接的行替换为以下两行,让pip自动匹配对应版本的cpu版torch:
--extra-index-url https://download.pytorch.org/whl/cpu torch==1.3.1+cpu
- 重新部署项目后,执行
heroku run pip list查看已安装依赖列表,确认torch已经成功安装,再启动应用即可。
内容的提问来源于stack exchange,提问作者Ferhat Pektas
相关产品推荐
相关产品推荐

