Transformer Grammars编译报错:install_requires格式异常求助
解决Transformer Grammars安装时setup.py依赖解析错误
问题概述
在Google Cloud N1深度学习VM(TensorFlow 2.10、CUDA 11.3、Python 3.7)环境下,执行Transformer Grammars项目的install.sh脚本时,触发setup.py报错:
'install_requires'必须是包含有效项目/版本要求说明符的字符串或字符串列表;解析错误在"''"处
问题源于setup.py读取requirements.txt生成的dependencies变量包含无效转义字符\',同时requirements.txt底部存在setuptools版本未固定的警告。已尝试升级pip、调整setuptools版本、联系官方人员但未解决。
修复方案
1. 修正setup.py的依赖读取逻辑
打开项目根目录的setup.py,找到读取requirements.txt的代码块,替换为以下代码以移除转义单引号:
with open('requirements.txt') as f: dependencies = [] for line in f: line = line.strip() if line and not line.startswith('#'): # 清理转义字符和多余引号 cleaned_line = line.replace("\\'", "'").strip("'") dependencies.append(cleaned_line)
2. 手动指定install_requires依赖列表
如果上述修改无效,直接在setup.py中替换install_requires=dependencies为明确的依赖项(从requirements.txt提取有效条目,去掉注释和警告行):
install_requires=[ 'absl-py>=0.13.0', 'tensorflow>=2.10.0', 'numpy>=1.21.0', # 补充其他项目依赖 ]
3. 锁定兼容的setuptools版本
针对Python 3.7和TensorFlow 2.10,锁定setuptools到兼容版本后重试:
pip install setuptools==58.1.0 pip install --upgrade pip bash install.sh
4. 清理缓存并重建虚拟环境
彻底清理依赖缓存,重建干净的虚拟环境后安装:
pip cache purge rm -rf venv/ python -m venv venv source venv/bin/activate pip install --upgrade pip setuptools==58.1.0 bash install.sh
内容的提问来源于stack exchange,提问作者aram10
相关产品推荐
相关产品推荐

