You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

安装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

火山引擎 最新活动