自定义Makefile构建Python项目时nose安装为Python2模块报错排查
错误输出
Couldn't run '/home/user/user_Workspace/project-0.4-os11-lib64/project/lib/nose/core.py' as Python code: SyntaxError: invalid syntax (core.py, line 153) make-4.3[1]: *** [//project/custommake:161: //project/test-factory-utils] Error 1 make-4.3[1]: Leaving directory '//project' E [core] custommake failed with exit code 2 make: *** [/home/user/user_Workspace/project-0.4-os11-lib64/custommake/custommake-bootstrap-setup.mak:275: bootstrap] Error 2
可能的原因
- pip调用未指定Python版本:系统同时存在Python2和Python3的pip,Makefile中执行
pip install时默认调用了Python2的pip(比如pip指向pip2),导致nose被安装到Python2环境,而项目运行依赖Python3,触发语法错误。 - Makefile安装命令未明确Python3:自定义Makefile里的依赖安装命令没有指定Python3的包管理器,比如用了
pip install -r requirements.txt而非pip3 install -r requirements.txt或python3 -m pip install -r requirements.txt。 - 虚拟环境失效:如果项目依赖虚拟环境,最近虚拟环境可能被误删除、激活步骤遗漏,或者激活脚本出错,导致安装依赖时使用了系统全局的Python2环境。
- nose版本未锁定:requirements.txt中没有指定nose的兼容版本,pip拉取了仅支持Python2的旧版本,或者最近pip源更新导致拉取到不兼容版本。
- 系统环境变量变更:最近系统PATH变量被修改,Python2的可执行文件路径优先级高于Python3,导致调用
python或pip时默认使用Python2环境。
内容的提问来源于stack exchange,提问作者Sunilsai
相关产品推荐
相关产品推荐

