做了十多年 Python 开发,帮学员和客户配环境的次数数不清,发现大部分"装不上包""运行报错"的问题,根源都在最开始的环境没配好:PATH 乱、多个 Python 打架、包装错了环境。本文按顺序把一台 Windows 开发机一次配好:Miniconda + conda/pip 换源 + 虚拟环境 + PyCharm,最后整理 6 个高频坑。
一、整体方案
| 组件 | 作用 |
|---|---|
| Miniconda | 精简版 conda,管理 Python 版本和虚拟环境 |
| conda-forge 源 | 社区维护的 conda 软件源,走清华镜像 |
| pip + 国内镜像 | 安装 PyPI 上的第三方包 |
| PyCharm | IDE,绑定到具体的虚拟环境 |
为什么选 Miniconda 而不是完整版 Anaconda:Anaconda 预装了几百个包,体积大、base 环境臃肿;Miniconda 只带 Python 和 conda,需要什么装什么,更干净。
关于授权:Anaconda 官方仓库(defaults 频道)受其服务条款约束,员工或承包商超过 200 人的营利组织通常需要付费订阅。本文统一使用社区维护的 conda-forge 频道,不走 defaults 官方仓库。Miniconda 安装包本身同样适用 Anaconda 的条款,公司用户如果想完全避开,可以改装 conda-forge 社区出品的 Miniforge,默认只用 conda-forge,后续步骤完全相同。
二、安装 Miniconda
- 下载安装包(三选一):
- 安装类型选 Just Me(官方推荐,不需要管理员权限);
- 安装路径不要有空格和中文 ,例如
D:\miniconda3; - 不要勾选 "Add Miniconda3 to my PATH environment variable",官方也不推荐,会和其他 Python 冲突;
- "Register Miniconda3 as my default Python" 如果电脑上只有这一套 Python,可以保留勾选。
安装完成后,从开始菜单打开 Anaconda Prompt,验证:
bash
conda --version
python --version
想在 PowerShell 或 Windows Terminal 里使用 conda,在 Anaconda Prompt 中执行一次:
bash
conda init powershell
关闭并重新打开 PowerShell,提示符前出现 (base) 即成功。
三、conda 换源(清华镜像)
Windows 不能直接新建以点开头的 .condarc 文件,先执行一条命令让 conda 自动生成:
bash
conda config --set show_channel_urls yes
然后用记事本打开 C:\Users\你的用户名\.condarc,全部替换为(清华镜像站"仅使用社区频道"配置):
yaml
channels:
- conda-forge
- nodefaults
show_channel_urls: true
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
nodefaults 的作用是禁止回落到 Anaconda 官方仓库。保存后清除索引缓存并测试:
bash
conda clean -i
conda create -n test numpy -y
conda remove -n test --all -y
四、pip 换源
先升级 pip,再设置全局镜像:
bash
python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config list
也可以换成阿里云:https://mirrors.aliyun.com/pypi/simple/。
上面的命令会写入 %APPDATA%\pip\pip.ini,也可以直接手动创建这个文件:
ini
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 60
临时使用某个源:pip install requests -i https://mirrors.aliyun.com/pypi/simple/。
五、虚拟环境:一个项目一个环境
核心原则:base 环境只放 conda 本身,项目依赖一律装到独立环境里。
bash
# 创建并激活 Python 3.11 环境
conda create -n py311 python=3.11 -y
conda activate py311
# 查看所有环境 / 退出 / 删除
conda env list
conda deactivate
conda remove -n py311 --all -y
导出环境,方便换电脑或给同事复现:
bash
conda env export --from-history > environment.yml
pip freeze > requirements.txt
# 复现
conda env create -f environment.yml
不想用 conda 的轻量项目,也可以用 Python 自带的 venv:
bash
python -m venv .venv
.venv\Scripts\activate
六、PyCharm 配置解释器
下载 :www.jetbrains.com/pycharm/dow... 。从 2025.1 起 PyCharm 合并为统一版本,安装后有 30 天 Pro 试用,到期后核心功能(含 Jupyter 支持)继续免费;原来的 Community 社区版 2025.2 是最后一个独立版本。
新建项目时绑定 conda 环境:
- New Project → Interpreter type 选 Custom environment;
- 选 Select existing ,Type 选 Conda;
- Path to conda 指向
D:\miniconda3\Scripts\conda.exe(或D:\miniconda3\condabin\conda.bat); - Environment 下拉选择
py311,创建项目。
已有项目切换解释器 :最快的方法是点击右下角状态栏的解释器名称 → Add New Interpreter → Add Local Interpreter,按上面同样方式选择 Conda 环境;也可以 Ctrl+Alt+S 打开设置,在搜索框输入 Interpreter 找到 Python 解释器设置页。
验证:在 PyCharm 中新建文件运行:
python
import sys
print(sys.executable)
# 应输出 D:\miniconda3\envs\py311\python.exe
七、日常使用的几个好习惯
环境配好只是开始,下面几个习惯能让它长期保持干净:
- 项目目录与环境一一对应 :例如项目
D:\code\spider对应环境spider,看名字就知道该激活哪个,PyCharm 里也不容易选错; - 依赖文件跟代码一起提交 :
environment.yml或requirements.txt放在项目根目录并提交到 Git,换电脑、交接项目时一条命令就能复现; - 给 Jupyter 注册内核 :在环境里装好
ipykernel后执行下面的命令,Jupyter 和 PyCharm 的 Notebook 都能选到这个环境:
bash
conda activate py311
python -m ipykernel install --user --name py311 --display-name "Python 3.11 (py311)"
- 定期清理缓存 :conda 下载的安装包会一直留在
pkgs目录,时间长了占用好几个 GB,可以定期执行conda clean --all -y; - 不要随手升级 base:base 环境只用来运行 conda,除非 conda 本身提示需要更新,否则不要在 base 里装包或大版本升级。
八、FAQ:6个常见坑
坑1:'python' 不是内部或外部命令,或输入 python 弹出微软商店
- 输入 python 弹商店:Windows 11 在 设置 → 应用 → 高级应用设置 → 应用执行别名(Windows 10 在 设置 → 应用 → 应用和功能 → 应用执行别名),关闭"应用安装程序 python.exe / python3.exe"两项;
- 用
where python查看当前命中的是哪个 Python; - 不要手动把 Miniconda 加到 PATH,用 Anaconda Prompt 或执行过
conda init的终端即可。
坑2:PowerShell 执行 conda activate 无效,或提示"禁止运行脚本"
执行 conda init powershell 后,如果报 无法加载文件 ...profile.ps1,因为在此系统上禁止运行脚本,执行:
powershell
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
然后重开终端。
坑3:conda 和 pip 混用导致依赖冲突
- 顺序:先用 conda 装好能装的,最后再用 pip 补,pip 装完后尽量不要再用 conda 改动同一环境;
- 统一用
python -m pip install xxx,确保装进当前激活的环境; - 不要往 base 里 pip 装包;环境装乱了,直接删掉用 environment.yml 重建,比修复快得多。
坑4:终端装了包,PyCharm 里却报 ModuleNotFoundError
绝大多数情况是解释器不一致:终端激活的是 A 环境,PyCharm 用的是 B 环境。用上面的 sys.executable 对比两边路径;在 PyCharm 自带的 Terminal 里安装,或在 Python Interpreter 设置页点 + 安装。
坑5:SSL 证书报错
- pip 报
SSLError(SSLCertVerificationError ...):常见于开了代理、公司网络做了 HTTPS 审计。先关代理重试;pip 24.2 起在 Python 3.10+ 上会同时使用系统证书库,升级 pip 往往就能解决;临时方案是加--trusted-host pypi.tuna.tsinghua.edu.cn,不建议长期关闭校验; - conda 报
CondaSSLError: OpenSSL appears to be unavailable:多半是在未激活的普通 cmd 里直接调用了 conda,改用 Anaconda Prompt 或执行过conda init的终端。
坑6:CondaToSNonInteractiveError: Terms of Service have not been accepted
这是 Anaconda 2025 年新增的服务条款确认机制,只有使用 defaults 官方频道时才会出现。二选一:
bash
# 方案A:接受条款(符合免费使用条件的个人用户)
conda tos accept
# 方案B:按第三节改用 conda-forge,并移除 defaults
conda config --remove channels defaults
总结
一台干净的 Python 开发机 = Miniconda(不加 PATH)+ conda-forge 清华源 + pip 国内源 + 每个项目独立环境 + PyCharm 绑定对应解释器。按这个顺序配一次,后面基本不用再折腾。
有部署或环境问题欢迎评论区留言,我会把高频问题整理成后续文章。 关注白泽软件开发,持续更新实战教程。