本地正常运行的Flask项目在Travis构建时出现flask_sqlalchemy模块缺失错误
解决Travis构建时
ModuleNotFoundError: No module named 'flask_sqlalchemy'的问题 这问题我之前也碰到过——本地环境因为手动装过依赖所以跑起来没问题,但Travis的构建环境是全新的干净环境,不会自动继承你本地的包,得明确告诉它要装哪些依赖才行。
下面是具体的解决步骤:
第一步:补全项目的依赖清单
在项目根目录下创建(如果还没有)requirements.txt文件,把所有项目需要的第三方依赖列进去,比如你用到的这些:Flask Flask-SQLAlchemy nose # 错误日志里提到了nose测试框架,这个也得装上注意:pip安装时的包名是
Flask-SQLAlchemy,而代码里导入的是flask_sqlalchemy,这是正常的对应关系,不用纠结名字差异。第二步:让Travis构建前先装依赖
打开你的.travis.yml配置文件(没有的话就新建一个),添加install步骤来安装依赖清单里的包:language: python python: - "3.6" # 和你本地用的Python版本保持一致,错误日志显示Travis用的是3.6.3 install: - pip install -r requirements.txt script: - nosetests # 替换成你实际的测试命令这样Travis在运行测试前,会先安装所有需要的依赖,自然就不会出现找不到
flask_sqlalchemy的错误了。额外排查点
如果已经有requirements.txt,先检查是不是漏写了Flask-SQLAlchemy;另外确认Travis配置里的Python版本和你本地开发用的版本一致,避免版本差异引发的其他问题。
内容的提问来源于stack exchange,提问作者Bonifase
相关产品推荐
相关产品推荐

