Macbook Pro M1芯片Python开发环境配置

2023-11-09

文章主要介绍M1 Mac新机器如何进行开发环境配置,由于在进行开发环境配置的时候,需要经常使用终端,而且新机器是没有配置homebrew的,后面一些操作不是很方便,所以本文将会对日常终端使用方面进行一些配置,丰富我们的终端样式和使用。

文章大致会讲解git安装,homebrew配置,iterm2+zsh+oh my zsh终端配置,conda-forge配置python环境,pycharm使用condo的python虚拟环境,文章为图文教程,需要耐心观看。

目录

一、环境准备

二、git安装

三、安装homebrew

四、安装iterm2

五、安装oh my zsh进行相关配置并安装命令提示和语法高亮插件

六、使用conda-forge配置python环境

七、pycharm开发环境配置


一、环境准备

  • 设备:Macbook Pro(13-inch,M1,2020)
  • 系统:macOS Big Sur
  • cpu架构:ARM
  • 内存:16GB
  • 磁盘:512GB
  • 新机器,无任何环境,确保网络连接正常

二、git安装

由于M1 Mac新机器是没有带homebrew的,这对后面我们使用brew安装一些东西特别不方便,这里会先讲解homebrew安装,然后进行终端丰富

由于没有homebrew,所以这里git安装无法使用brew install git,所以只能手动安装git,然后再使用git去拉homebrew安装包进行安装homebrew

  • git安装很简单,打开系统自带的终端,输入git,会自动弹出git安装操作,按照提示下载安装就可以了

检查对应git是否安装成功,打开终端并输入git --version查看版本

git --version

git安装成功

三、安装homebrew

在进行homebrew安装之前一定要将git安装好,不然后面跑安装脚本的时候会报git环境不存在的问题

  • 打开系统终端,使用下面的命令进行安装
  • /bin/zsh -c "$(curl -fsSL https://gitee.com/huwei1024/HomebrewCN/raw/master/Homebrew.sh)"
    
    #其中安装源可以选择中科大的源,然后安装完成之后还需要进行一些其它的配置

脚本执行完之后会出现上面的错误,这是因为M1版本的homebrew的安装位置是在/opt/homebrew目录下,所以需要进行下面的配置,将环境变量修改成/opt/homebrew

#1 先进入系统根目录
cd ~

#2 创建.zshrc文件
touch .zshrc

#3 打开文件进行编辑
sudo vim .zshrc

#4 需要将旧环境里面的配置修改一下
export PATH=/opt/homebrew/bin:$PATH
export PATH=/opt/homebrew/sbin:$PATH

然后保存文件

重新加载配置文件使修改的环境变量生效:

source ~/.zshrc

安装完后检查是否安装成功:

brew -v

四、安装iterm2

直接使用brew安装iterm2

brew install iterm2

iterm2安装成功之后可以自己配置一些color和text

我这里iterm2终端背景选择的是Solarized Dark,保护眼睛

五、安装oh my zsh进行相关配置并安装命令提示和语法高亮插件

可以使用官网推荐的安装方式进行安装

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

oh my zsh也可以使用手动进行安装的,比较稳一点点,这里的安装源是参考https://zhuanlan.zhihu.com/p/365838868 七哥方式

首先需要clone oh my zsh

git clone https://gitee.com/mirrors/oh-my-zsh ~/.oh-my-zsh

然后将.oh-my-zsh文件里的zshrc.zsh-template文件复制成zshrc文件

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

然后设置一下主题:

打开zshrc文件,然后将 ZSH_THEME="robbyrussell"修改为ZSH_THEME="agnoster"

sudo vim ~/.zshrc

配置完主题后还需要将homebrew的环境变量给加上去,因为前面的zshrc文件已经被覆盖掉了

修改完后保存并退出zshrc文件,然后刷新文件

source ~/.zshrc

如果想要修改iterm2的字体,可以下载powerline字体然后安装

git clone https://github.com/powerline/fonts.git

切到fonts文件目录,然后安装一下

cd fonts
./install.sh

安装完字体库之后,可以把iTerm 2的设置中的 Profile 中的 Text 选项卡中里的 Font 和 Non-ASCII Font的字体都设置成 Powerline的字体,我这里设置的字体是 Meslo LG S DZ for Powerline

接下来是安装命令提示插件

git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

安装语法高亮插件:

git clone git://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

配置相关插件,修改zshrc文件

vim ~/.zshrc

#在文件中找到plugins设置,将对应内容修改为:
plugins = (git zsh-autosuggestions zsh-syntax-highlighting)

重新加载.zshrc文件

source ~/.zshrc

这边想看到终端效果,需要重新打开iterm2,配置才会显示出来

可以看到高亮提示背景色比较淡,不好看,需要调整一下语法提示的颜色

然后重启iterm2,查看效果

六、使用conda-forge配置python环境

目前python基于arm架构的版本四python3.9以上,但是由于考虑后面开发要使用各个版本的python,考虑到向下兼容的问题,这里需要使用python的多版本管理软件conda来进行python版本管理

这里使用CondaForge进行介绍

conda-forge下载地址:

https://github.com/conda-forge/miniforge/#download

选择mac arm64位架构进行下载:

由于这个是shell脚本,不能直接进行安装,需要进入命令行目录进行执行:

cd ~/Downloads

执行命令进行安装

sudo bash ./Miniforge-MacOSX-arm64.sh

按enter继续

同意yes

按enter键继续下一步

yes

安装后默认版本是3.9

需要编辑.zshrc文件,加入如下环境变量

export PATH=”/Users/liushiwen/miniforge3/bin:$PATH”

保存后重新加载.zshrc文件 

source ~/.zshrc

检查conda-forge是否安装成功,输入python3检查python环境是否存在

看到python3.9的环境就完成了

查看conda已经配置的依赖包

查看conda的基本信息,包含内核、平台、下载源以及安装目录等等

conda info

配置conda的国内下载源,后面安装依赖库可以不用pip安装,直接使用conda进行安装,指定安装的python虚拟环境就可以了

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/

conda config --set show_channel_urls yes

查看当前下载源:

conda config --show

可以看到已经添加成功

conda 默认用的环境是python3.9,实际开发环境中一般会用到多种环境,这里需要配置这些环境信息

创建一个python3.8的虚拟开发环境

sudo conda create -n py38 python=3.8

查看当前conda安装的所有版本

conda info -e

将环境切换到3.8:

conda activate py38

这时候可能会报错,需要将iterm2重启一下,然后执行conda init <SHELL_NAME>,再执行conda activate py38进行环境切换

conda init zsh

重启iterm2然后执行

conda activate py38

查看环境是否切换成功:

conda info -e
python3

退出虚拟环境

conda deactivate

七、pycharm开发环境配置

目前pycharm已经适配了m1芯片的mac,可以直接在pycharm官网下载mac版本的pycharm社区版,记得选择apple芯片版的,不要选择intel版本

pycharm下载地址:

https://www.jetbrains.com/pycharm/download/#section=mac

下载完在访达中直接安装就好,安装好打开pycharm

pycharm配置python虚拟环境

先创建一个new project,配置interpreter

选择previously confihured interpreter然后选择后面的...进行虚拟环境配置

进入虚拟环境选择之后,选择conda environment,然后就可以选择conda进行管理的各种python版本的虚拟环境了,然后选择ok

然后再选择create,这样环境就配置成功了

接下来打开一些demo查看pycharm是否能够成功使用

打开python文件后会提示需要配置python interpreter

直接在pycharm底部切换虚拟环境就可以了

这样基础的开发环境就配好了,后面就是愉快的使用M1 Mac进行项目开发了,后面安装一些库的时候,会遇到一些安装上面的区别,需要在网上找对应的解决办法,一般使用conda安装依赖库好一些,找对应适配了arm架构的源进行安装就行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Macbook Pro M1芯片Python开发环境配置 的相关文章

  • 使用 python requests 模块时出现 HTTP 503 错误

    我正在尝试发出 HTTP 请求 但当前可以从 Firefox 浏览器访问的网站响应 503 错误 代码本身非常简单 在网上搜索一番后我添加了user Agent请求参数 但也没有帮助 有人能解释一下如何消除这个 503 错误吗 顺便说一句
  • 安装了 32 位的 Python,显示为 64 位

    我需要运行 32 位版本的 Python 我认为这就是我在我的机器上运行的 因为这是我下载的安装程序 当我重新运行安装程序时 它会将当前安装的 Python 版本称为 Python 3 5 32 位 然而当我跑步时platform arch
  • 需要在python中找到print或printf的源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在做一些我不能完全谈论的事情 我
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • 如何在 MacBook Pro 上的 Docker 容器内运行 tkinter?

    我正在尝试运行一个使用以下命令的 python GUI 应用程序tkinter我的 MacBook Pro 上的 docker 容器内的模块 所以我安装了XQuartz https www xquartz org 并跟随本教程 https
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • Sqlite代码28“文件在打开时重命名”

    这是一个推论这个问题 https stackoverflow com questions 27784704 sqlite deadlock across multiple threads with different files nored

随机推荐

  • 猫和老鼠服务器维修有问题,猫和老鼠手游老是掉线怎么办 频繁网络中断解决方法...

    猫和老鼠手游为什么老是掉线呢 许多玩家在玩的过程中频繁遇到这个掉线的问题 导致体验非常糟糕 有什么方法可以减轻或者彻底避免掉线的问题呢 下面小编就为大家介绍一下吧 1 信号不好 如果你是身处于火车 地铁 地下室 电梯 或者比较偏远信号不好的
  • Solidity学习笔记2——Webase积分合约

    代码段学习笔记 代码来源 Webase合约仓库 我只做了增加注释的工作用来记录相关知识点 pragma solidity 0 4 24 import SafeMath sol import Roles sol import Address
  • 特征值_特征值的性质:特征多项式角度

    本文从特征多项式展开角度介绍了特征值的性质 从而使读者有更加深刻的理解 一 特征值的性质 二 特征值性质的联系 若A为3阶方阵 我们将系数行列式展开 最后得到特征多项式如下 推导过程见李永乐线性代数辅导讲义 2021版 P2 评注 部分 现
  • AMR文件格式分析

    最近在传输手机录音时 遇到了AMR编码的问题 开始以为可以任意截断amr文件 加个文件头就可以播放的 后来发现是有问题 这样得到的amr音频有些不能正常播放 后来参看amr格式后 才知道amr文件是一帧一帧的 如果是按照完整的帧前面添加文件
  • socket、tcp、udp、http 的认识及区别

    网络由下往上分为物理层 数据链路层 网络层 传输层 会话层 表示层和应用层 IP 协议对应于网络层 TCP协议对应于传输层 HTTP协议对应于应用层 三者从本质上来说没有可比性 socket则是对TCP IP协议的封装和应用 可以说 TPC
  • 【华为OD机试】数字反转打印(python, java, c++, js)

    数字反转打印 前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email n
  • Codeforces 1月8日dev.2 A题解析

    先看题目 A Make it Beautiful time limit per test3 seconds memory limit per test512 megabytes inputstandard input outputstand
  • 渗压计的用途及分类

    渗压计也称作孔隙水压力计 是用于测量构筑物内部孔隙水压力或渗透压力的传感器 按仪器类型可以分为差动电阻式 振弦式 压阻式及电阻应变片等 渗压计的用途 渗压计适用于长期埋设在水工结构物或其它混凝土结构物及土体内 测量结构物或土体内部的渗透 孔
  • 解决idea start failed:异常key com.tang.intellij.lua.luacheck.LuaCheckSettings

    Idea之前在做Redis项目时使用了Lua脚本 弹出提示 顺手安装了一个Lua插件 导致再次开启Idea时抛出异常 查考https blog csdn net licheetools article details 118651511 在
  • 原码, 反码, 补码 详解

    转自 https www cnblogs com zhangziqiu archive 2011 03 30 ComputerCode html 本篇文章讲解了计算机的原码 反码和补码 并且进行了深入探求了为何要使用反码和补码 以及更进一步
  • https 获取安全证书和配置nginx

    1 阿里云申请免费的安全证书 一般几个小时就ok 2 服务器nginx创建目录cert 3 将下载下来的压缩包打开 复制里面的文件到服务器nginx配置cert目录下 可以更改名字 4 修改nginx conf配置文件 server lis
  • Hive 分区表

    Hive 分区表创建 hive gt CREATE TABLE t3 id int name string age int PARTITIONED BY Year INT Month INT ROW FORMAT DELIMITED FIE
  • 【NLP】第 1 章 语言处理和 Python

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Team Leader 究竟要不要写代码?

    今天浏览 Medium 看到一篇直接喊出 技术负责人 请停止写代码 的文章 晚间和家属一起坐火车 不禁一起围绕着这个话题进行了一番讨论 文章中说到 成为一个 Team Leader 最难的是要明白 你不再是一个真正的开发者 了 既编程又管理
  • 【面试经典150

    文章目录 写在前面 Tag 题目来源 题目解读 解题思路 方法一 原地操作 写在最后 写在前面 本专栏专注于分析与讲解 面试经典150 算法 两到三天更新一篇文章 欢迎催更 专栏内容以分析题目为主 并附带一些对于本题涉及到的数据结构等内容进
  • CMD设置代理 注册表设置IE代理

    法一 注册表reg 设置代理 开启代理 并 设置代理地址为127 0 0 1 8080 Windows Registry Editor Version 5 00 HKEY CURRENT USER Software Microsoft Wi
  • Vite的原理

    背景 这里的背景介绍会从与Vite紧密相关的两个概念的发展史说起 一个是JavaScript的模块化标准 另一个是前端构建工具 共存的模块化标准 为什么JavaScript会有多种共存的模块化标准 因为js在设计之初并没有模块化的概念 随着
  • 代码静态分析与安全检测工具COBOT

    COBOT是北大软件开发的软件代码静态分析与安全检测工具 COBOT支持10类1000余种编码规则检查 支持CWE 14类110余种语义缺陷 支持8类90余种常见的安全漏洞分析 COBOT通过度量分析能够检测包括圈复杂度 函数扇入扇出 注释
  • EMI滤波电路是由哪些元件组成的,一文看懂

    通常对于追求效率的电源来说 NTC热敏电阻几瓦的损耗始终会降低电源的转换效率 而且对于关机后在短时间内再次开机的情况 如果没有继电器 处于高温下的NTC热敏电阻将无法发挥正常作用 因此继电器与NTC在高端电源中往往是配套使用 以达到 鱼与熊
  • Macbook Pro M1芯片Python开发环境配置

    文章主要介绍M1 Mac新机器如何进行开发环境配置 由于在进行开发环境配置的时候 需要经常使用终端 而且新机器是没有配置homebrew的 后面一些操作不是很方便 所以本文将会对日常终端使用方面进行一些配置 丰富我们的终端样式和使用 文章大