You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacBook Pro M1导入umap时出现ImportError问题求助

ImportError Traceback (most recent call last)
Cell In[6], line 3
1 import openai
2 import pandas as pd
----> 3 from umap import umap_ as UMAP
4 from hdbscan import HDBSCAN
5 from bertopic.representation import OpenAI

File ~/anaconda3/envs/bertopic/lib/python3.9/site-packages/umap/init.py:2
1 from warnings import warn, catch_warnings, simplefilter
----> 2 from .umap_ import UMAP
4 try:
5 with catch_warnings():

File ~/anaconda3/envs/bertopic/lib/python3.9/site-packages/umap/umap_.py:10
7 from warnings import warn
8 import time
---> 10 from scipy.optimize import curve_fit
11 from sklearn.base import BaseEstimator
12 from sklearn.utils import check_random_state, check_array

File ~/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/optimize/init.py:400
1 """
2 =====================================================
3 Optimization and root finding (:mod:scipy.optimize)
(...)
397 :mod:Additional information on the nonlinear solvers <scipy.optimize.nonlin>
398 """
---> 400 from .optimize import *
401 from ._minimize import *
402 from ._root import *

File ~/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/optimize/optimize.py:36
32 import numpy as np
33 from .linesearch import (line_search_wolfe1, line_search_wolfe2,
34 line_search_wolfe2 as line_search,
35 LineSearchWarning)
---> 36 from ._numdiff import approx_derivative
37 from scipy._lib._util import getfullargspec_no_self as _getfullargspec
38 from scipy._lib._util import MapWrapper

File ~/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/optimize/_numdiff.py:6
3 import numpy as np
4 from numpy.linalg import norm
---> 6 from scipy.sparse.linalg import LinearOperator
7 from ..sparse import issparse, csc_matrix, csr_matrix, coo_matrix, find
8 from ._group_columns import group_dense, group_sparse

File ~/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/sparse/linalg/init.py:111
1 """
2 Sparse linear algebra (:mod:scipy.sparse.linalg)
3 ==================================================
(...)
108
109 """
---> 111 from .isolve import *
112 from .dsolve import *
113 from .interface import *

File ~/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/sparse/linalg/isolve/init.py:4
1 "Iterative Solvers for Sparse Linear Systems"
3 #from info import doc
---> 4 from .iterative import *
5 from .minres import minres
6 from .lgmres import lgmres

File ~/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/sparse/linalg/isolve/iterative.py:8
5 import warnings
6 import numpy as np
---> 8 from . import _iterative
10 from scipy.sparse.linalg.interface import LinearOperator
11 from .utils import make_system

ImportError: dlopen(/Users/lima/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/sparse/linalg/isolve/_iterative.cpython-39-darwin.so, 0x0002): Library not loaded: @rpath/liblapack.3.dylib
Referenced from: <F6B2F3DE-67F2-3432-A7FE-8F2AB8BC709B> /Users/lima/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/sparse/linalg/isolve/_iterative.cpython-39-darwin.so
Reason: tried: '/Users/lima/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/sparse/linalg/isolve/../../../../../../liblapack.3.dylib' (no such file), '/Users/lima/anaconda3/envs/bertopic/lib/python3.9/site-packages/scipy/sparse/linalg/isolve/../../../../../../liblapack.3.dylib' (no such file), '/Users/lima/anaconda3/envs/bertopic/bin/../lib/liblapack.3.dylib' (no such file), '/Users/lima/anaconda3/envs/bertopic/bin/../lib/liblapack.3.dylib' (no such file), '/usr/local/lib/liblapack.3.dylib' (no such file), '/usr/lib/liblapack.3.dylib' (no such file, not in dyld cache)

已尝试重建Conda环境、修改UMAP导入语句(从`from umap import UMAP`改为`import umap.umap_ as UMAP`),但问题未解决。

## 解决方案
### 1. 强制conda使用arm64架构包
M1芯片属于arm64架构,默认conda可能混用x86_64包导致依赖缺失,先设置conda优先加载arm64包:
```bash
conda config --set subdir osx-arm64

可通过以下命令验证设置:

conda config show | grep subdir

输出应为subdir: osx-arm64。

2. 创建全新环境并从conda-forge安装所有依赖

defaults频道的scipy包对M1适配不佳,改用conda-forge频道安装适配arm64的完整依赖:

# 创建新环境
conda create -n bertopic_m1 python=3.9
# 激活环境
conda activate bertopic_m1
# 从conda-forge安装所有需要的包
conda install -c conda-forge scipy umap-learn hdbscan bertopic openai pandas

3. 验证修复效果

激活环境后,运行以下代码测试导入:

import openai
import pandas as pd
from umap import UMAP
from hdbscan import HDBSCAN
from bertopic.representation import OpenAI

若无报错,说明问题已解决。

4. 备选方案:手动修复动态链接库

如果仍出现liblapack缺失,先安装openblas(lapack的依赖库):

conda install -c conda-forge openblas

再强制重新安装scipy:

conda install -c conda-forge --force-reinstall scipy

内容的提问来源于stack exchange,提问作者Li Ma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:25:17