title:M2 Macbook Pro 配置python3环境
date:2023-08-22

M2 Macbook Pro 配置python3环境

文章目录

  • title:M2 Macbook Pro 配置python3环境 date:2023-08-22
  • M2 Macbook Pro 配置python3环境
  • @[toc]
  • 0前记
  • 注意
  • 1 Python3虚拟环境 配置
  • 踩坑!!!
  • 2 Mac中.zshrc 和 .bash_profile
  • 3 总结

0前记

最近,新购置了M2 Macbook Pro,一直以来没有时间配置Python3 环境,昨晚配置了时遇到了一些问题,现在拿出来供大家配置时参考。

注意

  • 电脑下载了XCode,安装xcode时会内置一些环境(如:C/C++/Python)

1 Python3虚拟环境 配置

首先,打开shell,输入

which python3

结果如图所示,说明电脑内置了python3

mac python2 下载安装 python macbook下载_macos

所谓python3的环境配置通常指配置虚拟环境,在此我使用的是virtualenvvirtualenvwrapper虚拟环境管理包

pip3 install virtualenv
pip3 install virtualenvwrapper

⚠️ ⚠️⚠️ 这儿踩坑了

安装结果如图所示,warning提醒了not on PATH

mac python2 下载安装 python macbook下载_mac python2 下载安装_02


mac python2 下载安装 python macbook下载_macos_03

出现了警告,我当时没有处理,安装成功后,发现无法使用虚拟环境命令,也意识到是这个问题

踩坑!!!


  • 内置的Python3未写入环境变量
  • 这样导致后续的创建虚拟环境命令mkvirutalenv和workon无法使用
  • 主要原因是两个包没有在PATH环境下,电脑启动不会自动执行包管理文件,如下图所示,会报错
  • 两个处理方法,1每次自己手动打开virtualwrapper.sh 文件,这样比较麻烦 2 配置环境
  • 手动打开virtualwrapper.sh 文件操作
# 查看virtualwrapper包位置
which virtualenvwrapper.sh
# 我的在这个位置,前面加个. 路径 便可以了

. /Users/zedong/Library/Python/3.9/bin/virtualenvwrapper.sh
  • 配置环境,系统自动识别
# PATH 文件 .zshrc
vim ~/.zshrc
# 输入 
# Python3 PATH
export "PATH=/Users/zedong/Library/Python/3.9/bin:$PATH"
# 又一坑 添加这个语句处理“又一坑”
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
# 激活virtualenvwrapper.sh
source /Users/zedong/Library/Python/3.9/bin/virtualenvwrapper.sh

# 退出vim命令
# 激活环境
source ~/.zshrc
  • 又一坑

mac python2 下载安装 python macbook下载_virtualenv_04


现在基本就没有问题了,通过mkvirtualenv创建虚拟环境

# 创建 虚拟环境
mkvirutalenv MyEnv

# wokron 管理
workon MyEnv

# 退出虚拟环境
deactivate

我通常喜欢用Jupyter notebook,截止目前为止,配置成功

探索一个问题,.zhsrc 和 .bash_profile

2 Mac中.zshrc 和 .bash_profile

新款MacBook采用了zsh的shell,而不是bash的shell,需要使用.zshrc

# 查看自己使用的哪一个shell
echo $SHELL

# 查看系统安装了那些shell
cat /etc/shells

推荐一个网址,讲的很详细

# 感谢该网址
https://www.jianshu.com/p/273f0bc0f9d7

3 总结

  • 新版Macbook内置了Python3,可以不去官网下载,直接配置Python3,对python版本要求的话可以下载anaconda(GUI集成环境相对容易)
  • 知其然知其所以然,万变不离其中
  • 生命不止,折腾不止
  • END