MacBook m1pro在conda环境关于架构出现过的问题

回想一下十月份的时候刚拿到电脑做了点啥。

刚开始没有进行转换架构的虚拟环境的设置,导致好像是安装pyqt5?一直失败。

总之查了半天 最后指向似乎是架构问题

然后利用https://www.bilibili.com/read/cv13742031/

(也可以看看这个conda use x86 for Mac M1 - 点击领取)

进行了x86虚拟环境的设置

CONDA_SUBDIR=osx-64 conda create -n rosetta python
#创建了一个基于x86_64的虚拟环境 里面的python也是x86的

conda activate rosetta
python -c "import platform;print(platform.machine())"  # 应输出“x86_64”

# make sure that conda commands in this environment use intel packages
conda env config vars set CONDA_SUBDIR=osx-64

conda deactivate      # 需要reactivate该虚拟环境,以使设置生效
conda activate rosetta

echo "CONDA_SUBDIR: $CONDA_SUBDIR"   
#查看环境变量,确定是osx-64,支持intel包 应输出“CONDA_SUBDIR: osx-64”
#arm架构就是CONDA_SUBDIR: osx-arm64

经过以上设置,在base环境下为原生Python,在rosetta环境下为转译的Python

(我自己环境叫rfpy 自己不写这句怕将来会忘)

然后因为没有安装rosetta2 又安装了一遍这个

How to Install Rosetta 2 on Apple Silicon Macs

我似乎是终端输入

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

【亲测这段讲基于M1pro芯片 创建维持arm架构的虚拟环境的操作没用 实际上他默认就是苹果的架构 以及后续的包 肯定也是装默认arm架构的 根本无需设置这两句代码 设置了反而会提醒 warning重复的环境变量。 但是别人这么写的 先记下了吧 】

如果想维持苹果的芯片架构

CONDA_SUBDIR=osx-arm64 conda create -n env -c conda-forge

会给你一个osx-arm64本地环境。然后设置以下,否则将来的安装将恢复到 osx_64。

conda env config vars set CONDA_SUBDIR=osx-arm64

其他tips:

以下可以查看当前环境的python是intel还是arm 

import platform
platform.machine() ##'arm64'or'x86_64' 查看当前python

通过执行以下也可以对环境变量进行操作 

conda env config vars list   
##conda env config vars list -n base 指定了查看一个环境里的环境变量
#如果是最简单啥也没操作的环境 应该返回空 啥也木有

#当报错WARNING: overwriting environment variables set in the machine可以执行
conda env config vars unset CONDA_SUBDIR

#从特定环境中删除环境变量
#conda env config vars unset  CONDA_SUBDIR -n base

你可能感兴趣的:(绊脚的事情,conda,python,开发语言)