简介:面向刚接触 Python 编程的初学者,以及需要快速完成开发环境初始化的学习者,这份文档围绕 Python 解释器与 PyCharm 集成开发环境的安装、激活和基础配置展开,可作为正式写代码前的环境准备参考,帮助减少版本选择、安装组件勾选、解释器关联等环节的困惑。压缩包内共 1 个 docx 文件,大小约 1.29MB,以步骤化文字说明为主,便于在电脑上直接查阅并对照操作。目前已有 473 人学习下载,在入门环境搭建场景中具备一定参考价值。内容涉及 Python 与 PyCharm 的官方获取渠道、安装过程要点、License server 激活方式,以及新建项目时选择 Python 解释器的配置思路,适合希望独立完成开发环境初始化、随后开始编写和调试代码的读者按需查阅。
1. 从一份装环境笔记说起:Windows 上把 Python 和 PyCharm 装到能用
拿到一份几页的 docx,通篇是「下一步 → 下一步 → 完成」,看起来十分钟能搞定。但真正让人卡住的从来不是双击安装包,而是装完之后:命令行里敲python弹出了应用商店,PyCharm 新建项目时解释器一栏空空如也,pip install装完在代码里还是ModuleNotFoundError。这份笔记把路径压到了最短——官方装 Python、官方装 PyCharm、建项目、挂解释器,四步走完。适合第一次在 Windows 上搭 Python 环境的人照着做,也适合经常帮别人配环境的老手对照排查,因为翻车点基本都集中在那几个勾选框和解释器路径上。
2. Python 安装包怎么选:版本、勾选项与装完后的三处验证
Windows 上装 Python 有两种主流姿势:官网的 exe 安装包,和 Microsoft Store 版本。这份笔记走的是前者,也是我更推荐的一条路——安装位置可控、能装到任意盘符、卸载干净、多版本共存时不会互相打架。Store 版本省事,但目录藏在系统深处,出问题时很难定位,也不方便和团队里其他人的路径对齐。
2.1 版本怎么挑:示例里的 3.9.5 与当前稳定线的关系
原文举例写的是 Python 3.9.5,那是一个偏早的版本号,作为「示例」没问题,但直接照抄就有代价。3.9 这条线已经进入维护尾期,很多新库的新特性拿不到,而某些第三方轮子(尤其是带 C 扩展的)在新版本上才有预编译包。
我一般的判断顺序是这样:先看项目或课程要求,有没有写死版本;没有的话看依赖里最挑版本的那个库,比如某些深度学习框架对 Python 上下限有明确约束;都没有,就选当前稳定线里最新的小版本。判断依据不用猜,去官网下载页看一眼「稳定版本」标注即可。
多版本共存是完全正常的,Windows 上的 Python 启动器(py.exe)就是干这个的:
# 列出这台机器上所有已注册的 Python 版本 py -0py -0会输出一个带星号的列表,星号表示默认版本。参数说明:-0(数字零)是「列出」,不是字母 O;想指定某个版本执行脚本就用py -3.11 xxx.py。这个命令在装了多个版本之后特别好用,能一眼确认到底装成功了几个、默认是哪个,避免出现「我明明装了 3.11,怎么跑起来还是 3.8」这种玄学。
2.2 安装向导第一页的两个勾:PATH 与 launcher
安装向导第一页底部有两个勾选框,是整个安装过程里最不能手滑的地方。
第一个是「Add python.exe to PATH」。它决定装完之后在任意目录下敲python能不能被找到。默认状态下它是不勾的,很多人一路下一步,装完打开 cmd 输python,跳转到应用商店——这几乎是 Windows 上 Python 新手的必修课。补勾的办法有两个:重新运行安装包选 Modify 补上,或者手动去环境变量里加。我倾向于重装一遍,手动改 PATH 容易把别的路径顶掉。
第二个是「Install launcher for all users」,也就是前面说的py启动器。建议保持勾选,它是多版本共存的基础设施,后期排查版本错乱时能省很多事。
注意:不要为了省事把 Python 装进带中文或空格的路径,比如「桌面\新建文件夹\python」。相当一部分第三方包在编译或加载动态库时对路径敏感,出问题时报错信息完全看不出跟路径有关,排查成本极高。默认的
C:\Users\<用户名>\AppData\Local\Programs\Python\...或者干脆D:\Python311都比自定义中文目录安全。
点「Customize installation」进去还有一页可选组件,pip、tcl/tk(IDLE 用)、py launcher建议全留;再下一页的「Install for all users」会把 Python 装到Program Files下,需要管理员权限,好处是换用户登录也能用,坏处是后期装包偶尔要提权。个人机器上我的习惯是装到用户目录,避免权限纠纷。
2.3 装完别急着开 IDE,先把命令行验干净
安装器跑完会弹一个「Setup was successful」,这一步没有任何说服力。真正要确认的是三件事:解释器在不在、pip 通不通、实际调用的是哪一个。
# 1. 看版本号,确认能调起来 python --version # 2. 看 pip 是否随解释器一起装好 python -m pip --version # 3. 看这个 python 到底指向哪个文件 where python三条命令的含义不一样。python --version只证明「有个叫 python 的东西能执行」;python -m pip --version用-m方式调用 pip,能保证 pip 和当前这个解释器是配套的——这一点很关键,机器上装了两个 Python 时,直接敲pip很可能装到了另一个解释器里;where python输出按优先级排列的所有匹配路径,第一行才是实际生效的那个。
如果python没反应或者跳转商店,八成是 PATH 没配好,也可能是 Windows 的「应用执行别名」在抢。后者在系统设置的「应用 → 高级应用设置 → 应用执行别名」里,把python.exe和python3.exe两个开关关掉即可。
再用一小段代码确认解释器身份,比看版本号更可靠:
import sys # 当前正在运行的 Python 可执行文件的完整路径 print(sys.executable) # 完整的版本信息,包含编译器和位数 print(sys.version)sys.executable是关键,它给出的是绝对路径。后面在 PyCharm 里配解释器时,填的就是这个路径,两处对不上就是后面所有ModuleNotFoundError的根源。sys.version里会带64 bit之类的字样,如果显示 32 位而你的依赖需要 64 位,趁早重装。
3. PyCharm 安装与首次启动:Community 与 Professional 的取舍
PyCharm 的安装包本身没什么坑,双击、选路径、勾选项、装 JRE、完成,五分钟的事。真正需要想清楚的是版本选择和首次启动时的那一堆选择,以及原文里那段激活方式要不要照抄。
3.1 Community 和 Professional 差在哪,谁真的需要付费版
官方提供两个版本,功能边界大致如下:
| 能力项 | Community(社区版) | Professional(专业版) |
|---|---|---|
| 纯 Python 开发 | 支持 | 支持 |
| 科学计算(NumPy、Matplotlib 等) | 支持 | 支持 |
| Web 框架(Django、Flask)专项支持 | 不支持 | 支持 |
| 数据库工具与 SQL 编辑 | 不支持 | 支持 |
| 远程解释器、容器内开发 | 不支持 | 支持 |
| 前端框架(JS/TS)支持 | 不支持 | 支持 |
| 授权方式 | 免费 | 商业授权 / 试用 |
判断标准很直接:只写脚本、做数据分析、刷算法题、跑课程作业,社区版完全够用,而且是长期免费的正规授权。要写 Django 后端、要连远程服务器跑代码、要在容器里调试,才轮到专业版。
原文提到的「30 天试用」是官方给的评估期,试用结束后需要正式授权。这里必须说清楚一件事:原文里那段「选择 License server,填入某个服务器地址,点击激活」的做法,我不建议照抄,也不打算在文章里复述那个地址。原因有两条,且都很实际。
第一条是安全。这类第三方授权服务器完全不受你控制,它返回什么、记录了什么、要不要你在客户端上做额外配置,全是黑匣子。IDE 是每天要打开十几次的工具,让它跟一个来路不明的服务端做授权校验,等于在开发环境里埋了个说不清的入口。
第二条是稳定性。这类服务端的存活周期没人保证,今天能激活,下个月可能就连不上,某天早上打开 IDE 直接掉回试用期或者干脆打不开项目。血泪经验是:环境这种东西,宁可功能少一点,也别留一个随时会失效的依赖。
正规路径其实不少:在校学生和教师可以申请教育授权,开源项目维护者可以申请开源授权,社区版可以永久免费用,专业版也有正式的商业订阅。如果只是学习用途,社区版 + 官方文档的组合,比折腾激活省下的时间多得多。
3.2 安装向导的四个勾与首次启动的配置顺序
安装向导里值得留意的选项:
- 「Create Desktop Shortcut」按需,我一般只留 64 位那一个,桌面图标太多反而找不到。
- 「Update context menu / Add "Open Folder as Project"」建议勾上。这是右键菜单里多一个「以项目打开」的入口,后期排查别人的代码时,直接右键进项目比先开 IDE 再找目录快得多。
- 「Create Associations」如果机器上已经装了别的编辑器并设置了
.py关联,这里勾上会抢走默认打开方式,按自己习惯决定。 - 「Download and install JRE」让安装器自己处理,别去手动装 JDK,版本对不上反而更麻烦。
首次启动会依次问:是否导入旧版本设置(全新装就选不导入)、UI 主题(深色浅色纯属个人偏好,跟性能无关)、插件推荐(可以先全部跳过,用一段时间缺什么装什么)、以及授权方式。
启动后先别急着写代码,做三件事:第一,确认界面语言,如果显示英文而你想要中文,在插件市场搜中文语言包安装后重启;第二,把字体和字号调到长时间看不累的程度,编辑器里Ctrl + 滚轮可以快速缩放;第三,确认编码,在设置里搜 File Encodings,把 Global Encoding、Project Encoding 和默认属性文件编码统一成 UTF-8,这一步不做,后期处理含中文的 CSV 或 txt 时会遇到一堆乱码,而且报错信息通常指向别处。
4. 解释器配置:让 PyCharm 真正认出你装的那个 Python
装完两个软件只是把工具摆上桌,PyCharm 和 Python 之间还没有任何关系。新建项目时选解释器这一步,是整条链路里最容易出错、也最容易事后返工的环节。
4.1 新建项目时的三种解释器来源
新建项目向导里有一栏叫「Python Interpreter」,展开后大致有三类来源:
第一类是「New environment」,也就是新建虚拟环境。这是默认选项,会基于你选定的基础解释器,在项目目录下生成一个独立的.venv文件夹,所有依赖装进这里,和其他项目彻底隔离。绝大多数情况下选这个。
第二类是「Previously configured interpreter」,复用之前配过的解释器。适合你已经有了一套统一环境,多个项目共享。缺点是项目之间会互相污染依赖版本。
第三类是「System Interpreter」,直接用系统那个 Python。我不推荐,除非是一次性验证某个库的行为。用系统解释器意味着pip install装的东西全局生效,两个项目要求不同版本的同一个库时,必然打架。
选第一类时会让你指定「Base interpreter」,这里填的就是第 2 章里sys.executable打印出来的那个路径。可以直接在下拉里选,如果列表为空,点旁边的文件夹图标手动浏览到python.exe。这一步如果选错,项目能建出来,代码也能写,但运行时会告诉你找不到模块。
4.2 venv 到底解决了什么,什么时候可以不建
虚拟环境的本质是复制一份解释器的引用,再配一套独立的site-packages目录。装包只进这个目录,运行时优先从这里加载,所以项目 A 用 requests 2.28、项目 B 用 requests 2.31,互不干扰。
手工建一个也不复杂,命令行里两条命令:
# 在项目根目录下创建名为 .venv 的虚拟环境 python -m venv .venv-m venv是调用标准库自带的 venv 模块,不需要额外装任何东西。第二个.venv是目录名,用点开头是为了在文件树里靠前显示,也方便加进.gitignore。参数上唯一需要注意的是「用哪个 python 来执行这条命令」——用python -m venv而不是直接venv,能保证创建出来的环境基于你当前调用的这个解释器,避免版本错位。
创建完要激活才能在当前终端生效:
# PowerShell .\.venv\Scripts\Activate.ps1 # 传统命令行 cmd .venv\Scripts\activate.bat激活成功后命令行提示符前面会出现(.venv)。这里有个高频翻车点:PowerShell 默认的执行策略禁止运行脚本,激活时会报「无法加载文件,因为在此系统上禁止运行脚本」。解决办法是给当前用户放开本地脚本权限:
# 仅对当前用户生效,且只允许本地编写的脚本 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned-Scope CurrentUser限定只影响你自己这个账户,RemoteSigned表示本地脚本可以直接跑、从网络下载的脚本需要签名。不要去改成Unrestricted,那是给自己挖坑。
至于什么时候可以不建虚拟环境:只写单文件脚本、不装第三方库、跑完就删的场景,确实可以不建。但只要涉及pip install,我建议一律建。原因不是洁癖,而是半年后你想复现当时的结果时,requirements.txt只有配合独立环境才有意义。
4.3 已有项目和多版本 Python 的解释器切换
接手别人的项目、或者从 Git 拉下来一个仓库时,PyCharm 往往不会自动认出正确的解释器,右下角会显示「No interpreter」或者一个红色的提示。这时候的操作路径是:打开设置,找到项目下的 Python Interpreter,点齿轮或「Add Interpreter」,选择「Existing environment」,然后浏览到目标环境的python.exe。
如果是虚拟环境,路径长这样:项目根目录 →.venv→Scripts→python.exe。如果是系统解释器,就是第 2 章里查到的那个绝对路径。
切换完成后,PyCharm 需要几十秒重新建立索引,这段时间里代码里的 import 可能仍然标红,属于正常现象,等右下角的进度条走完再看。如果索引跑完还是红的,先确认两件事:这个包是不是真的装在这个环境里(在 IDE 底部的 Terminal 里敲python -m pip list看),以及 Terminal 里显示的 Python 路径和设置里配的是不是同一个。
这里有个我踩过很多次的坑:PyCharm 底部的 Terminal 有时候不会自动激活项目的虚拟环境,而是用了系统解释器。表现是 IDE 里代码一切正常,Terminal 里pip install装完却提示「已经存在」或者装到了别处。判断方法是在 Terminal 里敲where python,看第一行是不是项目下的.venv\Scripts\python.exe。如果不是,手动激活一次即可。
5. 安装环节的五个高频翻车点:现象、成因与处置
5.1 敲 python 弹出应用商店
现象:命令行里输入python,没有版本号输出,直接跳转到 Microsoft Store 的 Python 页面。
原因:Windows 自带的应用执行别名机制,在系统里存在python.exe的占位符,优先级高于你新装的解释器;或者安装时没勾「Add to PATH」,系统里根本没有可执行的 python。
解决:先关别名,在系统设置的「应用 → 高级应用设置 → 应用执行别名」里把python.exe、python3.exe两个开关关掉,重开一个终端再试。如果仍然不行,说明 PATH 确实没配,重新运行安装包选 Modify 补勾最省事。改完一定要新开终端窗口,老窗口读的是旧的环境变量。
5.2 IDE 里 import 报红,命令行里却正常
现象:同样的代码,在 PyCharm 里import requests标红,在 Terminal 里跑python xxx.py完全没问题。
原因:两处用的不是同一个解释器。IDE 里配的很可能是系统 Python 或另一个虚拟环境,而 Terminal 里激活的是项目自己的.venv。
解决:打开设置里的 Python Interpreter,看顶部显示的路径;再到 Terminal 里where python对比。两者不一致就以 IDE 设置为准去修 Terminal,或者反过来。修完之后python -m pip list确认包确实在这个环境里。用python -m pip而不是裸pip,就是为了杜绝「pip 和 python 不是一对」的情况。
5.3 虚拟环境建在中文路径下,装包时报奇怪的编译错误
现象:pip install某个需要编译的包时,报一长串路径相关的错误,或者提示找不到某个.dll、.lib。
原因:项目目录或用户名里带中文、空格、特殊符号。部分构建工具链在处理这类路径时会截断或转义失败,报错信息通常指向源码行号,完全看不出跟路径有关。
解决:把项目挪到纯英文无空格的路径下,比如D:\work\demo,删掉旧的.venv重建。这类问题排查起来极其费时,最好的办法是从一开始就不给自己这个机会。用户名本身是中文的情况,可以在非系统盘建一个纯英文的工程根目录,所有项目都放里面。
5.4 PowerShell 激活虚拟环境被拒
现象:执行Activate.ps1时报「无法加载文件……因为在此系统上禁止运行脚本」。
原因:PowerShell 的默认执行策略是 Restricted,禁止运行任何脚本文件。
解决:执行Set-ExecutionPolicy -Scope CurrentUser RemoteSigned,作用范围只限当前用户,不影响系统其他账户。改完重开终端。不要图省事改成Unrestricted或Bypass,那会让所有下载来的脚本畅通无阻。用 cmd 的话没有这个限制,但 cmd 的其他体验不如 PowerShell,我一般还是选择改策略。
5.5 装完两个 Python,pip 装的东西总是跑到另一个版本里
现象:明明在项目里pip install成功了,运行时还是提示模块不存在;或者pip list里能看到,python -c "import xxx"却失败。
原因:机器上有多个 Python 版本,pip这个可执行文件的 PATH 顺序和python不一致。典型情况是旧版本装在系统目录、新版本装在用户目录,两者的 Scripts 目录优先级不同。
解决:养成用python -m pip install xxx的习惯,它强制用当前python对应的 pip,从机制上消除错位。同时用py -0看清机器上到底有几个版本,把不用的旧版本卸掉,减少干扰源。这一步做完,后面所有「装了却找不到」的问题基本都能自证。
6. 把环境做成可复制的一套:从 requirements 到项目模板
单机装一次能用不算本事,换台机器或者过半年重装还能一键还原,才算把环境这件事做完了。我现在的习惯是,任何项目在写下第一行业务代码之前,先把三样东西固定下来。
第一样是requirements.txt。在虚拟环境激活状态下导出:
# 导出当前环境所有已安装包及其精确版本 python -m pip freeze > requirements.txt # 在另一台机器上还原 python -m pip install -r requirements.txtfreeze导出的格式是包名==版本号,精确到小版本号,这是它能复现的关键。参数上没什么可调的,但有两个习惯值得养成:一是导出前先把明显用不到的包卸掉,否则文件里会混进一堆间接依赖,别人一看就头大;二是如果项目要长期维护,把依赖分成requirements.txt和requirements-dev.txt两份,后者放测试、格式化、类型检查这些只在开发时用的工具,部署时不需要装。
第二样是.gitignore里那几行。.venv/、__pycache__/、.idea/、*.pyc必须写进去。尤其是.venv,一旦误提交,仓库体积会暴涨,而且不同操作系统的虚拟环境目录结构不一样,提交上去对别人毫无用处,只会制造冲突。
第三样是解释器的记录方式。不要靠记忆,用一个小脚本把当前环境的身份写进项目说明里:
import sys import platform # 记录到 README 或环境说明里,方便他人复现 print(f"Python: {sys.version.split()[0]}") print(f"Executable: {sys.executable}") print(f"Platform: {platform.platform()}")这三行输出粘到项目 README 的环境要求一节,接手的人一眼就知道该装哪个版本、在什么系统上验证过。比写一句「Python 3.x」有用得多,因为版本号的大版本相同、小版本不同导致的行为差异,在数据处理和异步相关库里并不罕见。
再往上走一步,是把这套东西固化成一个起步模板:一个空项目,建好.venv,配好 UTF-8 编码,装好black、ruff、pytest这几个常用工具,写好.gitignore和初始的requirements.txt。下次开新项目直接复制这个目录、删掉.venv重建,五分钟就能进入写代码的状态,不用每次都从头回忆「那个编码设置在哪来着」。这个模板我改过七八版,每次都是因为又踩了一个新坑才加进去一条。
最后说一句实在话:这份环境搭建笔记的价值不在「点下一步」那几步,而在它提醒你把「装完」和「能用」区分开。从那以后我每次装完新环境的机器,都会强制走一遍where python、python -m pip --version、sys.executable这三条,确认三处指向同一个文件,才开始装项目依赖。跳过这个检查省下的两分钟,往往要用两个小时来还。希望帮到你。
本文还有配套的精品资源,点击获取