能否在M1版MacBook Air上安装两个相同版本Python且独立管理依赖?
结论
完全可以实现,不需要依赖虚拟机或Docker即可满足需求,以下是两种成熟的可行方案:
方案1:pyenv安装同版本多实例(解释器+依赖全隔离)
pyenv支持为同一Python版本设置自定义别名安装,最终生成的两个Python实例的二进制文件、第三方包存储目录完全独立,互不影响:
- 首先通过Homebrew安装pyenv(M1芯片Mac适配完美):
brew install pyenv - 安装第一个自定义命名的同版本Python,示例用3.10.12版本,别名设为3.10.12_proj1:
PYENV_VERSION_NAME=3.10.12_proj1 pyenv install 3.10.12 - 安装第二个自定义命名的同版本Python,别名设为3.10.12_proj2:
PYENV_VERSION_NAME=3.10.12_proj2 pyenv install 3.10.12 - 执行
pyenv versions即可看到两个独立的Python实例,切换使用时执行pyenv local 对应实例别名即可绑定当前目录使用的Python版本,两个实例各自安装的pip包完全独立。
方案2:venv创建隔离虚拟环境(轻量依赖隔离,满足绝大多数场景)
如果你不需要两个完全独立的Python解释器二进制文件,仅需要第三方依赖、pip配置互不干扰,用Python自带的venv模块即可实现,无需额外安装工具:
- 先安装你需要的目标Python版本,可从Python官网下载对应安装包,或通过Homebrew安装
- 为第一个使用场景创建虚拟环境:
python3.10 -m venv ~/venv/proj1 - 为第二个使用场景创建虚拟环境:
python3.10 -m venv ~/venv/proj2 - 激活对应环境即可使用:
- 激活第一个环境:
source ~/venv/proj1/bin/activate - 激活第二个环境:
source ~/venv/proj2/bin/activate
- 激活第一个环境:
- 环境激活后安装的所有依赖只会存储在当前虚拟环境目录下,两个环境完全独立,不会互相冲突。
两种方案适用场景区别:pyenv多实例适合需要对Python解释器本身做不同编译配置、修改解释器默认设置的特殊场景;venv虚拟环境共用同一个基础Python解释器,仅隔离第三方依赖包,资源占用更低,适合绝大多数普通开发使用场景。
内容的提问来源于stack exchange,提问作者yohrna
相关产品推荐
相关产品推荐

