一、背景
背景:本身已经安装了python3.7版本的虚拟环境,不想直接动原环境,因此新建一个虚拟的python环境(目的是用最新的python版本3.10),记录一下过程中踩的一些坑。
二、安装过程
homebrew问题
首先遇到的是homebrew问题。在更新brew时,发现使用任何brew相关命令都报错(参考:Mac Homebrew命令报错)
造成这个 Homebrew 失效的原因可能是 Mac系统升级后,旧版本的 Homebrew 不适配了
解决方式1:直接执行更新指令
brew update-reset
brew list 查看brew安装列表
解决方式2:手动更新brew
我遇到的问题是直接执行brew update-reset语句后还是报同样的错。因此手动更新下
brew的代码地址为:
https://github.com/Homebrew/brew
在mac上的存储目录为:
/usr/local/Homebrew
~ which brew
/usr/local/bin/brew
~ ls -al /usr/local/bin/brew
lrwxr-xr-x 1 user admin 28 7 31 2019 /usr/local/bin/brew -> /usr/local/Homebrew/bin/brew
本质是个git repo,那么,可以通过直接同步代码来实现
cd /usr/local/Homebrew/
git pull
这时候遇到了xcrun问题(参考下一小节处理):
git pull
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
解决完brew问题后,后续就可以通过brew来完成各种操作了(定期更新 Homebrew常用指令)
- 更新包
brew outdated # 查看哪些包可以更新
brew upgrade # 更新所有的包
brew upgrade $FORMULA # 更新指定的包
- 清理旧版本
一般情况下,新版本安装了,旧版本就不需要了。我会用 brew cleanup 清理旧版本和缓存文件。Homebrew 只会清除比当前安装的包更老的版本,所以不用担心有些包没更新但被删了。
brew cleanup # 清理所有包的旧版本
brew cleanup $FORMULA # 清理指定包的旧版本
brew cleanup -n # 查看可清理的旧版本包,不执行实际操作
- 查看包相关信息
brew info $FORMULA # 显示某个包的信息
brew info # 显示安装了包数量,文件数量,和总占用空间
- 显示包的依赖关系
查看已安装的包的依赖,判断哪些包是可以安全删除的。
brew deps --installed --tree # 查看已安装的包的依赖,树形显示
- 使brew每次执行前不要自动更新
默认你每次使用brew安装某个包之前,brew都会率先执行自我更新(比较耗时)。若希望每次执行前不用更新,可将下面语句添加到环境变量中
# 使brew每次执行前不要自动更新 ( 可以将下面这个export 加到环境变量中去 )
export HOMEBREW_NO_AUTO_UPDATE=true
xcrun问题
参考:xcrun报错解决、Xcode命令行工具Command Line Tools
解决报错:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcru
一般Xcode安装后,第一次打开时,会弹窗提示安装Command Line Tools,直接安装即可。
如果当时没有安装,后面也可以单独安装
xcode-select --install // 安装命令
xcode-select --version // 查看版本
有时Command Line Tools出了问题,可以先尝试恢复默认设置来解决:
// 恢复默认设置(需要sudo权限)
sudo xcode-select --reset
还是解决不了,可以考虑删掉后重新安装:
// 强制删除安装目录下的文件
sudo rm -rf /Library/Developer/CommandLineTools
// 重新安装
xcode-select --install
虚拟环境工具
python虚拟环境有几个常用的工具:virtualenv、virtualenvwrapper、venv等(Python虚拟环境工具对比)。简单来说virtualenv是目前最流行的 python 虚拟环境配置工具,virtualenvwrapper是对 virtualenv 的一个封装,可以更方便地新增,删除,复制,切换虚拟环境(一般两者需要同时安装)。
由于本机中已经安装了virtualenv和virtualenvwrapper,这里直接使用。若第一次使用需要安装。(Mac系统下安装virtualenvwrapper教程)
创建virtualenv 虚拟环境
需要先在系统里安装新的python版本(虚拟环境会在系统里找这个python版本,找到才可以创建虚拟环境)。Mac环境下安装新版本Python
默认安装路径:/Library/Frameworks/Python.framework/Versions/xx(版本号)
可以使用命令open /Library/Frameworks/Python.framework/Versions/3.10 确认安装路径(我安装的是3.10)
修改环境变量(默认指向最新安装的python版本):
编辑环境变量
vim ~/.bash_profile
添加
alias python="/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10"
更新环境变量
source ~/.bash_profile
确认python安装成功
which python
python: aliased to /Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10
python -V
Python 3.10.5
指定在虚拟环境中需要使用的python版本
mkdir ~/env/env3100 # 新建一个目录用于存放新环境
virtualenv env3100 --python=python3.10 # 命令后部是指定虚拟环境要使用的pyhon版本 --> 在虚拟环境所在目录 安装对应的python版本
created virtual environment CPython3.10.5.final.0-64 in 1201ms
creator CPython3Posix(dest=~/env/env3100, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=~/Library/Application Support/virtualenv)
added seed packages: pip==22.1.2, setuptools==62.6.0, wheel==0.37.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
找到 env3100->bin,执行命令:source activate 启动env3100 这个虚拟环境
cd ~/env/env3100/bin/
source activate
在虚拟环境下输入python,验证当前环境python版本。大功告成!
(env3100) ~/env/env3100/bin python -V
Python 3.10.5
输入 deactivate 命令,退出当前虚拟环境
deactivate
通过virtualenvwrapper管理所创建的虚拟环境
由于我之前已经安装过,新增环境不需做任何操作即可以通过workon查找到环境。初次安装可以按照下面步骤
1. 安装 virtualenvwrapper
pip3 install virtualenvwrapper
3.安装完virtualenvwrapper,使用virtualenvwrapper.sh需要配置一下环境变量
首先 可以通过find命令找到virtualenvwrapper.sh
> sudo find / -name 'virtualenvwrapper.sh' (一般都在/usr/local/bin/virtualenvwrapper.sh)
~/env/env370/bin/virtualenvwrapper.sh
把下面这三行 写入 ~/.bash_profile 文件中即可
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export WORKON_HOME='~/env'
source /usr/local/bin/virtualenvwrapper.sh
配置完成后,输入:workon 命令可以查看当前虚拟环境
本文介绍了在Mac上创建Python 3.10虚拟环境的详细过程,包括解决homebrew和xcrun问题,使用virtualenv与virtualenvwrapper创建和管理虚拟环境。首先解决homebrew失效的问题,然后安装新版本Python,接着创建并激活虚拟环境,最后展示了如何通过virtualenvwrapper管理虚拟环境。
818

被折叠的 条评论
为什么被折叠?



