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

MacOS Sonoma系统下PyCharm安装gensim失败,提示无法找到OpenBLAS依赖

MacOS Sonoma系统下PyCharm安装gensim失败,提示无法找到OpenBLAS依赖

我特别理解你在Mac上装科学计算包踩坑的烦躁!从你贴的错误日志来看,核心问题是安装gensim依赖的scipy时,Meson构建系统找不到OpenBLAS——哪怕你已经装了它,大概率是环境变量没配置对,导致pkg-config(依赖查找工具)识别不到OpenBLAS的路径,再加上Python 3.13是比较新的版本,很多包还没有预编译的wheel,只能从源码编译,这时候对系统依赖的路径要求就更严格了。

下面给你几个逐步排查的解决方案,按优先级来试:

方案1:临时配置环境变量,让构建工具找到OpenBLAS

首先假设你是用Homebrew装的OpenBLAS(这是Mac上最常用的方式),先在PyCharm的Terminal里操作:

  1. 确认OpenBLAS的安装路径:

    brew info openblas
    

    你会看到类似输出,重点看Installed to:后面的路径(Intel芯片的Mac一般是/usr/local/opt/openblas):

    openblas: stable 0.3.27 (bottled)
    Optimized BLAS library
    https://www.openblas.net/
    /usr/local/Cellar/openblas/0.3.27 (23 files, 156.3MB) *
    
  2. 临时配置环境变量,让pkg-config和Meson能定位到OpenBLAS:

    export PKG_CONFIG_PATH="/usr/local/opt/openblas/lib/pkgconfig"
    export OPENBLAS="/usr/local/opt/openblas"
    
  3. 再次执行安装命令:

    pip install --upgrade gensim
    

方案2:永久配置环境变量,避免重复操作

如果临时配置管用,那可以把环境变量加到你的shell配置文件里(Sonoma默认用zsh,对应~/.zshrc):

  1. 打开配置文件编辑:

    nano ~/.zshrc
    
  2. 在文件末尾添加:

    # 配置OpenBLAS路径,给Python科学计算包用
    export PKG_CONFIG_PATH="/usr/local/opt/openblas/lib/pkgconfig:$PKG_CONFIG_PATH"
    export OPENBLAS="/usr/local/opt/openblas"
    
  3. 保存并生效配置:

    source ~/.zshrc
    
  4. 重启PyCharm(让它加载新的环境变量),再尝试安装gensim。

方案3:降级Python到3.12,绕开元码编译问题

Python 3.13是刚发布的版本,很多科学计算包(比如scipy、numpy)还没有针对它的预编译wheel,所以pip只能从源码编译,这就很容易触发依赖查找的问题。而Python 3.12的兼容性已经很成熟了,所有主流科学计算包都有预编译wheel:

  1. 在PyCharm中打开File > Settings > Project: [你的项目名] > Python Interpreter
  2. 点击右上角齿轮,选择Add
  3. 选择New environment,在Base interpreter下拉菜单里选Python 3.12(如果没装,先去Python官网下载安装3.12)
  4. 新建虚拟环境后,执行pip install --upgrade gensim,这时候会直接安装预编译wheel,根本不需要编译,自然就不会遇到OpenBLAS的问题。

方案4:强制安装预编译wheel(仅当Python版本支持时)

如果不想降级Python,可以试试强制pip用预编译wheel,避免源码编译:

pip install numpy==1.26.4 scipy==1.13.1 gensim==4.3.3 --only-binary :all:

注意:如果Python 3.13没有对应的预编译wheel,这个命令会失败,此时还是得回到方案2或3。

关于你提到的“日志路径不存在”的问题:那个是pip编译时创建的临时目录,编译失败后会被自动清理,所以找不到很正常,解决了依赖问题就不需要看这个日志啦。

备注:内容来源于stack exchange,提问作者Blejzer

火山引擎 最新活动