安装Python库遇cc1plus缺失错误求助(WSL Ubuntu 20.04)
解决WSL Ubuntu 20.04中构建Python扩展时
cc1plus缺失的问题 嘿,刚接触WSL碰到这种编译问题确实头疼!你遇到的核心问题是conda自带的C++编译器找不到cc1plus组件,要么是conda的工具链不完整,要么是系统和conda的编译器环境冲突了,给你几个一步步能试的解决办法:
1. 补全conda的g++工具链
conda默认的gcc套件有时候会缺组件,直接用conda安装完整的Linux g++工具链试试:
conda install -c conda-forge gxx_linux-64
这个命令会给你的conda环境补上完整的64位C++编译组件,替换掉原来可能残缺的版本。
2. 强制conda使用系统的g++
如果补全conda工具链没用,那就让conda调用WSL系统里的g++来编译:
- 先在家目录创建一个
.condarc文件(没有的话直接新建),添加以下内容:
conda_build: compiler: c: gcc cxx: g++
这样conda构建扩展时就会优先用系统的gcc/g++。
- 或者安装库的时候临时指定编译器,比如:
CXX=g++ pip install 你要装的库名
把你要装的库名换成实际的库名称就行。
3. 修复系统g++的损坏文件
你说g++ --print-prog-name=cc1plus返回了路径但找不到文件,说明系统的g++安装可能有损坏,彻底卸载重装试试:
sudo apt-get purge g++ gcc sudo apt-get install g++ gcc
先清掉旧的安装包,再重新装,能修复大部分文件缺失的问题。
4. 调整环境变量优先用系统编译器
有时候conda的路径在系统路径前面,导致优先用了conda的残缺编译器,临时调整PATH试试:
export PATH=/usr/bin:$PATH
执行完这个命令再去安装库,看看是不是能调用系统的g++了。
另外给你个小提醒:WSL里的conda和系统的apt是两套独立的包管理工具,两边的编译工具链版本不一致很容易出这种问题,要么统一用conda的工具链,要么统一用系统的,就能避免很多麻烦~
内容的提问来源于stack exchange,提问作者Lisa Goh




