MacOS下Conda从bccp通道安装nbodykit遇PackagesNotFoundError求助
解决MacOS下conda安装nbodykit的PackagesNotFoundError问题
问题根源
bccp通道大概率未提供适配Apple Silicon(M系列芯片)的arm64架构包,而你的导师使用的Linux系统为x86_64架构,bccp通道有对应版本的包,因此能成功安装。如果你的Mac是M系列芯片,conda默认会以arm64架构查找包,导致找不到bccp通道下的nbodykit及其他库。
解决方案
1. 强制conda使用x86_64架构(Rosetta 2兼容)
Apple Silicon芯片可通过Rosetta 2运行x86_64程序,设置conda默认使用osx-64子目录:
conda config --set subdir osx-64
之后创建新环境并尝试安装:
conda create -n nbodykit_env conda activate nbodykit_env conda install -c bccp nbodykit
若不想全局修改架构,可在创建环境时单独指定:
conda create -n nbodykit_env --subdir osx-64 conda activate nbodykit_env conda install -c bccp nbodykit
2. 重置并确认bccp通道配置
先移除现有bccp通道再重新添加,确保通道索引更新:
conda config --remove channels bccp conda config --add channels bccp conda update --all --yes
设置通道优先级为严格模式,确保bccp通道的包被优先检索:
conda config --set channel_priority strict
再次执行安装命令:
conda install -c bccp nbodykit
3. 手动下载osx-64包本地安装
找到bccp频道提供的nbodykit osx-64版本包(.tar.bz2格式),下载后用本地安装命令:
conda install /path/to/downloaded/nbodykit-<version>-osx-64.tar.bz2
4. 关于pip安装的Cython错误
pip安装时出现Cython相关错误,通常是Apple Silicon环境下编译C扩展依赖缺失导致的。若上述conda方案成功,可直接使用预编译包,避免编译过程。
内容的提问来源于stack exchange,提问作者Damiano Cerioni
相关产品推荐
相关产品推荐

