You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku+Python环境下如何导入本地自定义函数?

解决Heroku上Python本地模块导入问题

嘿,我来帮你理清这个问题!首先得纠正一个误解:requirements.txt是用来声明第三方依赖库的,你自己写的本地Python文件完全不需要在这里面添加,这不是自定义依赖的范畴~

下面是正确的操作步骤和排查要点:

一、正确的本地模块导入方式

你的from fetchWelcome import fetchWelcome写法本身是没问题的,只要满足以下几个前提:

  • 确保fetchWelcome.py和main.py处于同一个目录下,而且部署到Heroku时,这个目录结构在Git仓库里是完全一致的(别把fetchWelcome.py误放到子文件夹里)
  • 检查fetchWelcome.py里的函数名拼写,Python是大小写敏感的,要保证函数确实是fetchWelcome(注意首字母大写的地方要严格匹配)
  • 确认fetchWelcome.py本身没有依赖其他未声明的第三方库——如果它里面用了比如import requests但你requirements.txt没加requests,那报错会被误以为是导入模块的问题,得把这类第三方库正确加到requirements.txt里

二、排查Heroku部署时的常见坑

如果还是报错,大概率是部署环节的问题,你可以从这几点检查:

  • 查看你的.gitignore文件,有没有不小心把fetchWelcome.py排除在外了?如果这个文件没被提交到Git,Heroku服务器上就找不到它,自然会报模块找不到的错误
  • 用heroku logs --tail命令查看Heroku的实时日志,找到具体的错误信息(比如是ModuleNotFoundError还是某个依赖缺失),这能帮你精准定位问题

三、简单验证示例

给你一个最小可运行的示例,确保逻辑没问题:

  1. fetchWelcome.py的内容:
    def fetchWelcome():
        return "Hey there! Welcome to our chat bot 🎉"
    
  2. main.py的内容:
    from fetchWelcome import fetchWelcome
    
    # 测试调用
    if __name__ == "__main__":
        print(fetchWelcome())
    
  3. requirements.txt里只需要放你实际用到的第三方库,比如如果用了Flask就写:
    flask==2.3.3
    

这样本地运行没问题,把所有文件提交到Git后部署到Heroku,就不会出现导入错误啦!

内容的提问来源于stack exchange,提问作者Kartikeya Rana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:57:18