支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-08-21 12:00:47 Python pyenv conda 虚拟环境
做 Python 开发久了,多版本共存是绕不开的问题。老项目要兼容 3.8,新项目想试 3.10 的新特性,本地跑不同框架对版本要求也不一样,来回卸载重装太折腾。这里整理了几套常用的切换方案,跨平台能用的、系统专属的都有,从项目级到系统级覆盖到了。
最稳妥的还是虚拟环境,只在项目维度生效,完全不会动到系统本身的 Python,隔离性最稳。
Python 3.3 之后自带了 venv 模块,不用额外装任何工具,日常开发完全够用。
# 创建虚拟环境
python3 -m venv myenv_py39
# 激活环境
source myenv_py39/bin/activate # Linux/macOS
myenv_py39\Scripts\activate # Windows
# 验证版本
python --version
如果是做数据科学相关的开发,conda 用得更普遍。不管是完整的 Anaconda 还是精简的 Miniconda,创建环境的时候可以直接指定 Python 版本。
# 创建指定Python版本的环境
conda create --name py38_env python=3.8
# 激活环境
conda activate py38_env
# 安装依赖
conda install numpy
需要全局管理多个 Python 版本的话,pyenv 基本是主流选择,全平台都支持。
Linux 和 macOS 下安装很方便,官方提供了一键脚本,直接执行就行。装完记得把环境变量写到对应的 shell 配置文件里,不管是 .bashrc 还是 .zshrc,加上 PYENV_ROOT 的定义,把 bin 目录加到 PATH 最前面,再执行 pyenv init 的两行初始化。
这个地方很多人容易漏,装完之后发现命令找不到,或者切换了版本不生效,基本都是配置没写对。
# 安装pyenv(Linux/macOS)
curl https://pyenv.run | bash
# 配置环境变量(~/.bashrc或~/.zshrc)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
# 安装Python版本
pyenv install 3.8.12
pyenv install 3.9.7
# 切换版本
pyenv global 3.9.7 # 全局切换
pyenv local 3.8.12 # 项目目录下生效
macOS 上也可以用 Homebrew 来装 pyenv,比一键脚本更符合包管理的习惯,后续升级也方便。
还没装 Homebrew 的话,先跑官方的安装脚本,装完执行 brew install pyenv 就可以了。
# 安装Homebrew(若未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 通过Homebrew安装pyenv
brew install pyenv
Linux 系统本身还有 update-alternatives 可以做系统级的版本切换,不想额外装工具的时候可以用。先看一下 /usr/bin 目录下有哪些 Python 版本,然后用 root 权限把各个版本添加到替代项里,后面的数字是优先级。
切换的时候执行 config 命令,选对应的编号就行。不过这个是改系统级的软链接,隔离性比较差,生产环境改的时候要谨慎。
# 查看已安装Python版本
ls /usr/bin/python*
# 添加替代版本(需root权限)
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2
# 切换版本
sudo update-alternatives --config python
Windows 下没有那么多原生的管理工具,简单的场景可以写个批处理脚本。比如新建一个 switch_py38.bat 文件,把对应版本的 Python 目录和 Scripts 目录加到 PATH 最前面,最后启动一个新的 cmd 窗口。
双击就能用,临时测个小脚本足够了。
:: 创建switch_py38.bat文件
@echo off
set PATH=C:\Python38\Scripts;C:\Python38;%PATH%
cmd /k
进阶一点的用户也可以修改注册表来调整默认版本。按下 Win+R 输入 regedit 打开编辑器,导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore 路径,修改默认版本指向的安装路径。新手不建议碰这个,改错了容易导致 Python 的文件关联都出问题。
不管用哪种方法切换完,都记得验证一下。先跑 python --version 看版本号对不对,Linux 和 macOS 再用 which python,Windows 用 where python,确认一下当前调用的解释器路径是不是预期的那个,别忙活半天切错了环境。
python --version
which python # Linux/macOS
where python # Windows
这几种方案没有绝对的好坏,对应不同的场景选合适的就行。
日常项目开发优先用虚拟环境,隔离性高,操作也简单,每个项目一套依赖,不会互相污染。
需要同时维护多个 Python 版本、频繁切换的话,pyenv 更顺手,用户级的管理也不会影响系统本身。
做数据科学、需要处理大量科学计算包的场景,conda 的优势很明显,包管理和环境隔离都做得不错,就是整体偏重一点。
临时快速测试的话,手动改 PATH 或者写批处理最省事,不用装额外工具,当然也没什么隔离性,用完就关就行。
Linux 下的 update-alternatives 是系统级的方案,适合系统层面统一指定默认版本,开发环境不建议依赖这个,改不好容易把系统工具搞出问题。
基本上普通开发优先虚拟环境,全局多版本管理用 pyenv,数据科学方向直接上 conda,大部分场景都能覆盖到了。
赋值索引时长度不匹配导致报错,聊聊原因和修法。
本文深入探讨了如何利用Python Tkinter库,根据按钮的不同状态(如点击、禁用、悬停等),实时动态调整其视觉样式。通过详尽的示例代码,我们将展示如何精准控制按钮的背景色、前景色、边框等属性,助您打造交互性更强、用户体验更佳的GUI界面。无论您是Tkinter新手还是经验丰富的开发者,都能从中获得实用的技巧。
深入学习如何使用Python的`wordcloud`库,从零开始创建英文词云图。文章涵盖库安装、文本数据处理、词云生成及高级自定义技巧,助你轻松掌握数据可视化利器。通过调整参数和文本数据,你可以制作出符合需求的词云图。
深入探索Python中素数判断的奥秘。本文从最基础的试除法讲起,逐步引入优化技巧,如缩小循环范围至平方根、跳过偶数检查等,手把手教你如何编写既准确又高效的素数判断函数,显著提升程序性能,告别龟速计算。