老旧MacBook(OS X 10.11.6)安装JAX遇Segmentation fault 11等错误
在OS X 10.11.6(仅CPU旧MacBook)上配置JAX的问题与求助
我在一台仅支持CPU的老旧MacBook(系统为OS X 10.11.6)上尝试配置JAX(自动微分/线性代数库),使用conda 22.11.1与Python 3.9.12,过程中遇到以下问题:
- 使用
conda install jax -c conda-forge安装时,环境求解耗时极久,最终安装的jax与jaxlib版本老旧且不匹配,在Jupyter Notebook中报错。 - 改用pip安装最新版
python -m pip install jax==0.3.25 jaxlib==0.3.25时,提示No matching distribution found for jaxlib==0.3.25,推测与系统版本有关。 - 卸载后安装jax与jaxlib 0.3.10版本,安装成功,但导入jax或jax.numpy时Python内核直接崩溃,报
Segmentation fault 11。
问题复现:最小环境测试
- 创建并激活conda环境:
conda create -n jax_env python=3.9 conda activate jax_env
此时基础包列表如下:
bzip2 1.0.8 h0d85af4_4 conda-forge ca-certificates 2022.12.7 h033912b_0 conda-forge libffi 3.4.2 h0d85af4_5 conda-forge libsqlite 3.40.0 ha978bb4_0 conda-forge libzlib 1.2.13 hfd90126_4 conda-forge ncurses 6.3 h96cf925_1 conda-forge openssl 3.0.7 hfd90126_1 conda-forge pip 22.3.1 pyhd8ed1ab_0 conda-forge python 3.9.15 h709bd14_0_cpython conda-forge readline 8.1.2 h3899abd_0 conda-forge setuptools 65.5.1 pyhd8ed1ab_0 conda-forge tk 8.6.12 h5dbffcc_0 conda-forge tzdata 2022g h191b570_0 conda-forge wheel 0.38.4 pyhd8ed1ab_0 conda-forge xz 5.2.6 h775f41a_0 conda-forge
- 执行pip安装指定版本:
python -m pip install jax==0.3.10 jaxlib==0.3.10
新增包列表如下:
absl-py 1.3.0 pypi_0 pypi flatbuffers 2.0.7 pypi_0 pypi jax 0.3.10 pypi_0 pypi jaxlib 0.3.10 pypi_0 pypi numpy 1.23.5 pypi_0 pypi opt-einsum 3.3.0 pypi_0 pypi scipy 1.9.3 pypi_0 pypi typing-extensions 4.4.0 pypi_0 pypi
- 运行
python并尝试导入jax.numpy,仍出现Segmentation fault 11错误。
额外尝试:conda安装指定版本
创建相同基础环境后,执行:
conda install jax=0.3.10 -c conda-forge
环境求解更快,包及依赖安装完成,但导入时出现以下错误:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/username/anaconda3/envs/jax_env/lib/python3.9/site-packages/jax/__init__.py", line 35, in <module> from jax import config as _config_module File "/Users/username/anaconda3/envs/jax_env/lib/python3.9/site-packages/jax/config.py", line 17, in <module> from jax._src.config import config File "/Users/username/anaconda3/envs/jax_env/lib/python3.9/site-packages/jax/_src/config.py", line 27, in <module> from jax._src import lib File "/Users/username/anaconda3/envs/jax_env/lib/python3.9/site-packages/jax/_src/lib/__init__.py", line 114, in <module> import jaxlib.xla_client as xla_client File "/Users/username/anaconda3/envs/jax_env/lib/python3.9/site-packages/jaxlib/xla_client.py", line 25, in <module> from . import xla_extension as _xla ImportError: dlopen(/Users/username/anaconda3/envs/jax_env/lib/python3.9/site-packages/jaxlib/xla_extension.so, 2): Symbol not found: _SecKeyCopyExternalRepresentation Referenced from: /Users/username/anaconda3/envs/jax_env/lib/python3.9/site-packages/jaxlib/xla_extension.so Expected in: /System/Library/Frameworks/Security.framework/Versions/A/Security in /Users/username/anaconda3/envs/jax_env/lib/python3.9/site-packages/jaxlib/xla_extension.so
求助问题
- 这些问题是否与我的OS X版本相关?
- 如何解决
Segmentation fault 11错误? - 有没有可行的办法让JAX在该环境下正常运行?
内容的提问来源于stack exchange,提问作者cmm0052
相关产品推荐
相关产品推荐

