ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Windows下Python开发环境搭建全攻略:从安装到HelloWorld实战

Windows下Python开发环境搭建全攻略:从安装到HelloWorld实战 昨天晚上一个朋友微信找我“Python装好了但打开IDLE黑乎乎的也不知道下一步要干嘛学Python第一步就这么难吗”这已经是今年第五个在第一步就卡住的人了。大部分新手在Windows上搭Python开发环境真正卡住的从来都不是代码而是安装那几分钟里几个不起眼的选项该下载哪个包、要不要勾PATH、装完之后怎么验证。这次我把整个流程从零走一遍不只是告诉你点哪里还会解释每一步为什么这么操作最后带你完整跑通一个HelloWorld工程实例顺便把新手最容易踩的坑全部提前排掉。1. 新手装Python最容易在哪一步卡住1.1 看下载页面就蒙圈Windows用户到底下哪个打开官网python.org/downloads页面上有一个很大的黄色按钮“Download Python 3.x.x”很多人直接就点了。点完发现运行安装包后又开始犹豫一个是Install Now一个是Customize installation下面还有一堆复选框。其实这个页面本身不会出大问题真正出问题的是安装完以后当你打开命令行输入python系统却告诉你“不是内部或外部命令”。先解释一个背景Windows上的Python发行包官方提供好几种类型常见的有下面几个Windows installer (64-bit)文件名一般是python-3.12.10-amd64.exe绝大多数64位Windows系统选它就行。Windows installer (32-bit)只有老电脑或者某些必须装32位解释器的特殊场景才选。Windows embeddable package这是压缩包形态免安装但里面没有pip还做了隔离处理新手千万别碰这个。下载页面还有源码包、macOS包、Linux包你都不需要关注。我见过不少新手在下载页面对比了半天“Windows installer”和“embeddable package”以为后者更干净、更“绿色”结果装完发现没有pip还要手动折腾纯粹是给自己挖坑。1.2 真正让人崩溃的不是安装而是“装完之后”如果安装过程一路点Next装完在开始菜单能搜到IDLE但一到命令行执行python就开始报错问题通常出在环境变量上。Windows的PATH环境变量可以理解成一份“寻人启事的目录”你在命令行里敲一个命令系统会按PATH里列出的文件夹顺序挨个去找有没有叫这个名字的程序。你没把Python所在的文件夹加进PATH命令行自然找不到python。这个坑之所以反复出现是因为Windows安装包默认没有把“Add python.exe to PATH”这一项勾上。那个选项藏在安装过程中的设置页面里英文不太好的新手很容易忽略一路“下一步”就错过了。所以我现在教新手时开头就反复强调一句话装Python的过程中不是一直点“下一步”就完事有几个关键选项必须手动确认。2. 正式开工前的版本选择与安装参数2.1 版本不是越新越好建议选3.11或3.12写这篇的时候官方最新版已经到3.13了。但如果你去问任何一个干了几年Python开发的人大概率会得到一个结论生产环境很少第一时间升到最新版。原因很简单第三方库的兼容性往往滞后很多公司现在还在用3.8、3.9维护老项目依赖一升就炸。对新手来说我建议装3.12.x或者3.11.x这两个版本生态成熟、文档多网上搜问题能搜到一堆答案。选版本时还会看到“Windows installer (64-bit)”这种命名以python-3.12.10-amd64.exe为例3.12是主版本号10是补丁版本号amd64表示64位。补丁版本的大小不用纠结影响很小。关键还是别下载embeddable package那个是给需要内嵌Python解释器的开发者用的没有pip功能新手用了会非常难受。2.2 安装界面里那几处关键选择运行安装包后我建议分两步走先勾选“Add python.exe to PATH”这是新手能不能在命令行里呼出python的关键必须勾上。点击“Customize installation”而不是“Install Now”虽然多两步操作但能自定义安装路径。自定义安装路径这个细节很多教程没讲。默认路径一般在C:\Users\你的用户名\AppData\Local\Programs\Python\Python312这个位置有两个问题一是路径里带用户名和空格某些命令行工具或者后续安装的依赖对空格处理不好二是藏得深新手想手动检查都不方便。我的习惯是改成C:\Python312或者D:\Python312层级简单后面配环境变量、找文件都省事。路径里别放中文和空格这是Windows下的老规矩。进入“Optional Features”页面后默认勾选的几个建议都保留尤其是pip和py launcher。pip是Python的包管理器后面装requests、装numpy全靠它py launcher是Windows下管理和切换多个Python版本的工具哪怕你现在只装了一个Python它以后也能帮上大忙。2.3 安装完用两个命令判断环境是否真的可用安装完成后打开一个新的命令行窗口。这一步很重要必须新开一个窗口因为旧窗口不会加载最新的环境变量。然后依次输入python --version pip --version如果看到类似“Python 3.12.10”和“pip 24.x.x”这样的输出说明核心环境已经通了。要是pip提示“不是内部或外部命令”大概率是上面Customize里没勾pip或者安装后改过Python路径。解决方法是退回安装包选择“Modify”把pip勾上补装一次就行。我自己的习惯是再做一个进阶验证python -c import sys; print(sys.executable)这行命令会告诉你当前解释器的绝对路径。它解决的问题是当电脑上装了多个Python时你运行到的到底是哪一个。很多“ModuleNotFoundError”报错其实是装包和运行用的不是同一个解释器这个后面会专门展开讲。3. 编辑器不是越折腾越好VS Code的三分钟配置3.1 为什么推荐VS Code而不是PyCharm新手纠结编辑器的时间通常比真正写代码的时间还多。PyCharm功能确实全但启动慢而且它一上来就会给你灌输“项目”“虚拟环境”“解释器”这一堆概念新手第一次打开很容易懵。VS Code胜在轻量安装包不大打开就能写报错提示也直观对一个第一周只想跑通HelloWorld的人来说学习成本低得多。等以后真要写大型项目、需要重度调试的时候再回头学PyCharm也不迟。VS Code装好后打开左侧扩展面板搜索“Python”安装由Microsoft发布的那个扩展标识是ms-python.python。这个扩展会自动识别你电脑里已经装好的解释器但前提是Python已经写进了系统PATH这也再次印证了前面勾选“Add python.exe to PATH”有多重要。3.2 选择Python解释器看似不起眼却决定一切的一步装好扩展后按下CtrlShiftP打开命令面板输入“Python: Select Interpreter”回车VS Code会列出它检测到的所有Python解释器。新手容易犯的错误是刚装好Python时VS Code会右下角弹窗询问“选择解释器”结果随手点了“建议项”或者干脆没选。这种情况下你点运行按钮可能报错或者运行的其实是某个完全无关的Python环境。所以每次新建工作区后我的建议是第一步就确认右下角状态栏显示的解释器路径最好和命令行里python --version输出的版本一致。这个操作看起来有点傻但它决定了后续所有包导入、调试、代码补全能不能正常工作属于典型的“花10秒钟省下2小时”。3.3 运行HelloWorld的三种方式我用哪种最多写一个文件比如hello.py在VS Code里点击右上角带播放箭头的“Run Python File”按钮或者右键选择“Run Python File in Terminal”编辑器底部终端就会直接出现输出。还有一种是直接在集成终端里输入python hello.py。新手阶段我推荐先从“右键运行”入手它能把“代码编辑”和“代码运行”之间的割裂感降到最低你只需要盯着终端看结果就行。但你也要知道真实开发里大部分情况还是要回到命令行手动跑python xxx.py的因为那样更可控。以后你会慢慢发现所谓“会开发”很大一部分能力就是能在命令行里准确控制程序的运行方式和参数比如后面要讲的venv、pip install全部离不开命令行。4. 第一个HelloWorld工程实例从命令行到工程目录4.1 HelloWorld的两种写法一个函数就够了但要有主函数意识打开VS Code新建一个文件夹hello_world在里面新建文件main.py输入print(Hello, World!)先别急着写第二行。如果只是需要“显示一句话”上面这一行就够了。但为了往工程化方向走建议从第一个程序开始就保持一个习惯def main(): print(Hello, World!) if __name__ __main__: main()这段代码多出来的部分作用是当这个文件被直接运行时会执行main()当这个文件被其他模块导入时不会自动跑main()。新手现在不一定会遇到“被导入”的场景但这个写法是几乎所有Python脚本和项目通用的入口习惯早养成早受益。以后你写爬虫脚本、写工具脚本、写Web后端都会用到这个结构。4.2 中文注释与UTF-8编码错误是新手绕不过的坎在HelloWorld基础上很多新手会试着加一句中文注释或者改成print(你好世界)然后突然报错UnicodeEncodeError或者控制台显示乱码。这个问题的根源在于Windows控制台默认代码页是GBK简体中文环境下或cp936而Python 3的源码默认UTF-8两边一碰撞就出问题。解决办法最直接的是文件保存为UTF-8编码VS Code右下角可以设置运行前在终端执行chcp 65001把控制台临时切到UTF-8代码页。如果实在不想每次敲chcp也可以在main()开头加这一段import sys def main(): sys.stdout.reconfigure(encodingutf-8) print(你好世界)这样会强制当前进程的标准输出使用UTF-8适用于很多需要打印中文的工具脚本。这个写法在Python 3.7以上可用你电脑都装3.12了没问题。4.3 加一个输入示例让HelloWorld不再是“说完就跑”光print一个字符串很多新手跑完就忘没什么感觉。我建议第一天就写下这个版本name input(请输入你的名字) print(f你好{name}欢迎开始Python开发。)这里用到了f-string格式化字符串是Python 3.6之后最常用的写法。运行后程序会停下来等你输入输入完按回车再继续输出。这个小小的交互能让你第一次体会到“程序”和“用户输入”之间的关系比你单纯打印一句话有感觉得多。写完这个你其实已经接触到了变量、函数调用、字符串格式化这几个最基础的概念后续学习会顺畅不少。5. 新手高频报错排查表按症状定位问题新手前两周报错翻来覆去就那几类。我把最高频的问题整理成一个表你可以收藏起来遇到问题先对照一下自己属于哪一种现象原因解决办法python不是内部或外部命令PATH未包含Python目录修改系统环境变量重启命令行双击py文件黑屏一闪而过程序运行完进程自动退出用命令行运行python xxx.pySyntaxError: invalid character混入中文全角标点检查引号、括号、冒号是否为半角IndentationError: unexpected indent空格与Tab混用或多余缩进统一用4个空格关闭自动检测缩进UnicodeEncodeError: gbk codecWindows控制台默认GBK编码终端执行chcp 65001或用sys.stdout.reconfigureModuleNotFoundError装包与运行解释器不一致用python -m pip install xx形式安装5.1 命令行里的两朵乌云python闪退和不是内部命令“python不是内部或外部命令”这个报错在Windows新手圈出现频率极高原因前面已经说了就是PATH没配好。解决方法是打开系统属性依次进入“高级系统设置”-“环境变量”在“系统变量”里找到Path新建两项C:\Python312和C:\Python312\Scripts具体路径改成你自己的Python安装目录。保存后重新打开命令行再试python --version。还有一种情况是python命令能呼出但程序一闪就退。这通常发生在你直接双击了一个.py文件Windows把Python当成临时进程跑完窗口直接关闭。遇到这种情况不要慌打开命令行cd到那个文件所在的目录再用python main.py运行输出就能一直停留在屏幕上了。5.2 中英文标点和缩进理论上不会错实际上全在错新手写代码最容易出现的SyntaxError十次里有九次是标点或缩进问题。中文输入法状态下打括号、打逗号、打引号看起来和英文的差不多但Python只认英文半角符号一不小心就是“invalid character”。检测方法很简单出错了先上下左右检查一遍引号、括号、冒号看是不是中文全角字符。缩进问题也一样。Python用缩进表示代码块所以代码块前面的空格或Tab必须一致。VS Code默认Tab Size是4建议在设置里关掉“Detect Indentation”统一用空格。要是看到IndentationError: unexpected indent就去检查是不是某一行前面多按了空格或者混进了Tab。5.3 电脑上同时装过多个Python版本怎么保证不混乱如果你之前装过Anaconda后来又装了官方Python或者从官网下载过两个版本那很容易出现这种情况pip装完包但python运行时却报ModuleNotFoundError或者python命令指向A版本pip却指向B版本。解决办法是以后装包不再直接敲pip而是用模块调用的方式python -m pip install requests这样能确保pip装进当前python命令对应解释器的环境里。配合前面提过的py launcher你还可以用py -0查看所有已安装版本用py -3.12指定某个版本运行代码。这句“python -m pip install ...”属于Windows多Python场景下最值钱的技巧一定要记下来。6. 从HelloWorld到真正“开发”三个必做的工程习惯6.1 虚拟环境为什么不能把所有包都往全局装HelloWorld跑通之后下一个自然的动作是装第三方包比如pip install requests。如果你不做任何隔离直接装这些包会被写进全局的site-packages目录。今天装requests明天装flask后天装django再过半年你的全局环境里可能躺着一百多个包版本还互相打架。我接过几个“为什么我的代码换个电脑就跑不通”的新手提问最后排查下来都是因为依赖乱在了全局。正确的做法是每个项目建一个独立虚拟环境。在项目目录下执行python -m venv .venv然后VS Code会在右下角弹窗问你是否切换到该环境点“是”。之后你在这个环境里执行pip install包都会落在.venv目录里。你随便装装坏了把.venv删掉重新创建就行完全不影响系统Python。6.2 让依赖可以复现requirements.txt是项目自带的“说明书”虚拟环境建好后当你陆续装了几个包执行pip freeze requirements.txt这行命令会生成一个文件记录当前环境里所有包名和版本。换电脑、换环境时执行pip install -r requirements.txt就能一键把这些依赖全部装回来。很多人觉得这一步麻烦但等你遇到“一星期前还能跑的程序突然跑不起来”的时候回头看requirements.txt你会庆幸当初存了它。6.3 下一步学什么从HelloWorld到第一个小工具环境搭好、HelloWorld跑通算是正式入门了。接下来我比较推荐的做法是别急着去啃大部头教程先给自己定一个小目标写一个能用的工具。比如批量重命名文件的脚本、按日期归档日志的脚本、抓取某个网页标题的小爬虫。做出来的东西真正能用比刷一百遍教程都管用。过程中你自然会接触到Python类型转换、list和dict、循环和函数这些基础语法不需要一次记牢用到哪学到哪效率最高。最后分享一个我在带新手时反复强调的小技巧把VS Code的“自动保存”开启路径是File - Auto Save。这样每次运行前不用手动CtrlS能减少一次“怎么改了半天还是旧结果”的困惑。真就这么个小地方累积起来就是新手体验的巨大差别。
返回列表