我见过太多人倒在了Python学习的第一步上:不是Python本身难,而是环境没装明白。明明照着教程敲了三行代码,结果不是提示“python不是内部或外部命令”,就是跑到某个不知名的文件夹里装了一堆不明来历的包,最后连自己用的到底是哪个解释器都说不清。
这篇文章不打算讲高深的东西,就把“Python安装及简单脚本测试”这件事从头到尾捋清楚。我会从版本选择、安装细节、环境变量配置,到写完第一个脚本、跑通一次完整测试,再到几个新手几乎必踩的坑,整个过程都用实际经历来还原。你不需要有任何编程基础,只要愿意跟着一步步操作,半小时内就能把Python环境弄得明明白白,并且亲手跑通属于自己的第一个脚本。
1. 装Python之前,先把版本和安装方式搞清楚
很多教程一上来就让你去官网下载最新版,然后一路“下一步”到底。这个流程没毛病,但对于完全没有经验的人来说,有几个关键问题不先想清楚,后面会非常被动。
1.1 版本选择:别盲目追新,也别迷信旧版
先说结论:如果你是纯新手、没有历史项目包袱,选当前稳定的Python 3.x系列就行,具体来说就是3.10到3.12这个区间内的最新小版本。
为什么不建议追最新的大版本?因为生态里的第三方库需要时间适配。我记得有一年Python发布了新的3.13版本,某些常用的数据分析库还没跟上,你兴冲冲装完发现import就报错,查了半天发现是版本兼容问题,这就非常打击学习积极性。而太老的3.6、3.7版本,一方面官方已经停止维护,另一方面一些新语法特性用不了,遇到问题网上能搜到的解决方案也会变少。
还有一个小提醒:千万不要在Windows系统上从Microsoft Store安装Python。虽然商店里确实有Python应用,但它的安装路径和权限管理方式跟常规安装差异很大,后续用pip装包、配置虚拟环境都可能出现莫名其妙的问题。老老实实从官网下载安装包,是最不容易出错的方式。
1.2 安装包选择:64位还是32位
现在绝大多数电脑都是64位系统了,但有少量老电脑还是32位。怎么判断?Windows系统在“设置 -> 系统 -> 关于”里能看到系统类型,也可以右键“此电脑”选“属性”查看。选择对应的安装包即可,一般选64位不会错。如果选错了,Python也能装上,但某些依赖底层的第三方库可能会因为架构不匹配而无法安装。
1.3 安装过程中最关键的一步:勾选“Add Python to PATH”
这是整个安装流程中最重要、也最容易被忽略的一个选项。安装包打开后,第一个界面左下角有一个复选框,写着“Add Python to PATH”。默认是没勾选的,需要你手动勾上。
PATH是什么?你可以把它理解成一个“目录索引清单”。当你在命令行里输入python这个单词时,系统会按照PATH里记录的目录逐个查找,看哪个目录下存在python.exe文件,找到了就执行它。如果没有把Python的安装目录加进PATH,系统就会回复“python不是内部或外部命令”,这就是很多人装完Python后第一条报错的来源。
勾选之后,继续往下走,在安装类型那里,如果你硬盘空间不紧张,建议直接选“Customize installation”或者“Install Now”。选“Install Now”也能用,但选自定义安装,你能看到更多选项,比如“Install for all users”(为所有用户安装)。这个选项建议勾上,否则某些操作需要管理员权限时会比较麻烦。
2. 验证环境:一个命令确认装没装对
安装完成后,很多人迫不及待地打开IDLE或者某个编辑器开始写代码。但我的建议是:先打开命令行窗口,做一次环境验证。
2.1 打开命令行并确认Python版本
Windows下按Win + R,输入cmd回车,就打开了命令行窗口(也叫终端)。在里面输入:
python --version如果显示类似Python 3.11.5这样的信息,说明安装成功且PATH配置正确。
如果你的系统装了多个Python版本,输入python --version后可能显示的是其中一个。怎么确认当前用的是哪一个?输入:
where python这个命令会把PATH里所有python.exe的完整路径列出来。从上到下,第一个就是当前生效的解释器。这个信息非常有用,很多环境混乱的问题都可以靠这个命令排查出来。
2.2 pip的确认与升级
pip是Python的包管理器,相当于手机里的应用商店。你用pip来安装各种第三方库。安装Python时一般会自带pip,验证一下:
pip --version如果提示找不到pip,可以尝试:
python -m pip --versionpython -m pip的意思是“用python解释器去运行pip这个模块”,这种写法比直接敲pip更保险,因为它明确指定了用哪个Python来执行pip。这也是我推荐新手养成的习惯:涉及包管理操作时,优先用python -m pip,能最大限度避免“装到了别的Python里”这种问题。
不出意外的话,你会看到pip版本号。这时候建议顺手升级一下pip,因为新装的pip往往不是最新版:
python -m pip install --upgrade pip这一步不是必须的,但升级后装包的成功率和速度都会好一些。
2.3 运行一段Python代码验证解释器正常
命令行里还可以直接进入Python的交互模式。输入python回车,你会看到类似>>>的提示符,这说明你进入了Python的交互环境。这里可以一行一行地执行Python代码。
print("Hello, Python")回车后,屏幕上输出Hello, Python,这是你运行的第一行Python代码。输入exit()或者按Ctrl + Z再回车,退出交互模式。
这个验证过程虽简单,但非常有价值。它确认了你的Python解释器本身能正常工作,后续写脚本如果出问题,就可以排除环境层面的因素。
3. 三个简单脚本,从零开始理解“写代码→跑代码”的完整流程
环境就绪,接下来就是写真正的脚本文件了。很多新手分不清“交互模式”和“脚本文件”的区别,这里我多说一句:交互模式适合临时验证一两行代码,而脚本文件是把你的一段程序保存成.py文件,然后一次性执行。实际做项目时,几乎都是在写脚本文件。
写脚本文件需要一个文本编辑器。这里推荐新手用VS Code(Visual Studio Code的简称),免费、跨平台、插件丰富。你不需要一开始就去折腾那些复杂的功能,只要会新建文件、保存、运行就够了。当然,用系统自带的记事本也可以,但记事本没有语法高亮,代码看着费劲,而且保存时容易搞出编码问题(这个后面专门讲)。
3.1 第一个脚本:输入输出与变量赋值
新建一个文本文档,改名为first_script.py,注意后缀是.py而不是.txt。用编辑器打开,输入:
name = input("请输入你的名字:") print(f"你好,{name}!欢迎来到Python的世界。") age = 25 print(f"我今年{age}岁。")在命令行里,切换到脚本所在目录,然后执行:
python first_script.py程序会提示你输入名字,输入后回车,就会看到两行输出信息。
这个脚本涉及了三个核心概念:变量(把数据存起来)、输入(从用户那里获取信息)、输出(把结果显示出来)。f前缀的字符串叫f-string,是Python 3.6之后引入的格式化写法,里面用大括号包裹变量名,运行时会把变量值替换进去。这是目前最常用的字符串格式化方式,建议直接学会用它。
3.2 第二个脚本:文件读写与异常处理
第一个脚本只用了Python自带的基础函数,第二个脚本我们来接触文件操作和异常处理。这两个能力在后面的开发中会经常用到。
新建file_demo.py,输入:
try: with open("notes.txt", "r", encoding="utf-8") as f: content = f.read() print("文件内容如下:") print(content) except FileNotFoundError: print("文件不存在,将创建并写入新内容。") with open("notes.txt", "w", encoding="utf-8") as f: f.write("这是第一行笔记。\n") f.write("这是第二行笔记。\n") print("创建完成,再次运行本脚本即可读取内容。")第一次运行时,因为notes.txt还不存在,你会走异常分支,创建文件并写入两行内容。第二次运行时,文件已经存在,就能正常读取并打印了。
这一段代码里,with open(...) as f是Python非常推荐的文件操作写法。它会在代码块结束后自动关闭文件,不需要手动调用close()方法,能有效避免文件句柄泄漏的问题。encoding="utf-8"是指定文件编码,这个参数后面还会关系到乱码问题,先记住这个写法。
try...except...是异常处理机制。程序在运行过程中难免遇到意外情况,比如文件不存在、网络断开、数字格式错误等等。如果不处理,程序会直接崩溃并抛出一长串红色的错误信息。通过异常处理,你可以捕捉到特定类型的错误,并让程序做出更友好的响应。
3.3 第三个脚本:使用第三方库做一点有趣的事
前两个脚本只用Python标准库,但Python之所以强大,很大程度上是因为拥有海量的第三方库。我们用一个最简单的例子来体验“装库”和“用库”的完整流程。
安装requests库——这是一个用于发送HTTP请求的库,简单说就是你可以在代码里访问网页接口、获取数据:
python -m pip install requests安装完成后,新建web_demo.py,输入:
import requests url = "https://httpbin.org/get" try: response = requests.get(url, timeout=5) print("状态码:", response.status_code) print("返回内容:") print(response.text[:300]) except requests.exceptions.RequestException as e: print("请求出错了:", e)运行这个脚本,如果网络正常,你会看到状态码200和一段JSON格式的返回内容。httpbin.org是一个专门用于测试HTTP请求的公共网站,不需要注册,随便用。
这个流程别看简单,它对应了开发中的标准操作:安装依赖、导入模块、调用接口、处理异常、查看结果。把这一套流程理解了,你以后学任何Python第三方库都会觉得熟悉。
4. 新手最容易翻车的三个场景及排查方法
按前面步骤操作,顺利的话30分钟就能跑通所有脚本。但实际过程中,总有一些意外情况会跳出来。我把几个高频问题单独拿出来讲,每个都是我亲眼见过、甚至自己踩过的情况。
4.1 场景一:系统里有两个Python,pip装到了“另一个”里
这是最经典的环境混乱问题。有的人电脑里之前装过Anaconda,后来又在官网装了Python,或者自己装过不同版本的Python。当你直接敲pip install xxx时,系统用的pip可能属于这个Python,而你的.py脚本运行时用的却是另一个Python,两边对不上号,就会发生“明明装了requests,一运行却提示ModuleNotFoundError”。
解决方案就是统一使用python -m pip这一格式。python解释器是当前命令行默认的那个,python -m pip会调用跟这个解释器匹配的pip,安装路径不会错。装完之后再运行python -m pip list查看当前解释器能识别到的所有库,确认你要的库已经出现在列表里。
如果实在混乱到无法收拾,最简单的办法是把所有Python相关程序都卸载干净,重新按本文的流程安装一遍。别觉得丢人,环境干净对新手来说比什么都重要。
4.2 场景二:Python文件中的中文变成了乱码
用记事本写Python文件,保存时默认用的可能是GBK或者ANSI编码,而Python 3默认按UTF-8读取源代码文件,两边不一致就会导致中文乱码。
这个问题的答案很明确:写代码的编辑器保存文件时,统一选择UTF-8编码。VS Code在右下角能看到当前文件的编码格式,点击它可以选择“Save with Encoding”,选UTF-8保存即可。
另外,读取外部文本文件时也容易出现编码问题。你读取某个文件时,最好明确指定编码,例如前面代码里的encoding="utf-8"。如果文件本身是GBK编码的,指定UTF-8去读会报错,这时改成encoding="gbk"就行。
一个判断技巧是看报错信息:如果是UnicodeDecodeError,说明是读取时编码不匹配;如果是UnicodeEncodeError,说明是输出时编码不匹配(比如把中文打印到Windows命令行窗口时,窗口默认编码可能不支持)。Windows命令行可以执行chcp 65001临时切换为UTF-8代码页,能解决一部分中文显示乱码的问题。
4.3 场景三:安装第三方库时出现大面积红色报错
看到一屏红色文字,新手很容易慌。实际上,大部分安装报错可以归为几类。
一类是网络问题。pip默认从海外源下载,国内网络环境下速度慢、容易超时。解决办法是切换到国内镜像源,比如清华、阿里云的PyPI镜像。执行命令时可以临时指定:
python -m pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple如果不想每次手动加参数,可以修改pip配置文件,把镜像源设为默认。Windows下配置文件路径一般是%APPDATA%\pip\pip.ini,里面写入:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple另一类错误是你当前Python版本太老或太新,第三方库不支持。这类错误信息里通常能看到Python版本号或者某个编译相关的关键词。解决办法就是换一个合适的Python版本。
还有一类是缺少编译工具链,比如安装某些包含C扩展的库时,Windows下需要Microsoft C++ Build Tools。这类问题通常有现成的预编译包,先升级pip再重试往往就能解决,因为新版pip能下载到对应平台的预编译wheel包,不需要本地编译。
4.4 一个排查工具:用最小代码定位问题
遇到任何“装好了却用不了”的情况,我都建议你做一个最小化验证。别在一堆代码里找原因,先打开命令行,输入python进入交互模式,然后一行一行地执行:
import requests print(requests.__version__)第一行负责导入库,第二行打印库的版本号。如果导入成功,说明库被当前解释器正确识别;如果在这一步就报错,问题基本锁定在环境上,而不是你的业务代码上。
这种排查思维方式越早建立越好:把问题拆到最小可复现的单元,再逐一排查,远比盯着几百行代码发愁高效。
5. 关于编辑器选型和“写脚本”的几个实在建议
很多教程会把编辑器推荐放在很前面,但我觉得等环境搞定、脚本跑通之后再选编辑器更合理。因为这时候你已经知道“代码是怎么运行起来的”,编辑器对你来说就只是一个更顺手的工具,而不是一个需要同时学习的负担。
VS Code是我给大多数新手的推荐。装上Python扩展之后,它会提供语法高亮、代码补全、错误提示、一键运行等功能。你用不用这些功能都不影响学习,但一旦习惯了,效率提升非常明显。
有几个设置建议在VS Code里提前配好:
- 缩进:Python用缩进表示代码块,不同编辑器里缩进单位不统一会造成麻烦。VS Code里可以把Tab键统一转换为4个空格,这样无论在哪台机器上打开文件都不会乱。
- 默认编码:把文件保存的默认编码设为UTF-8,从源头杜绝乱码问题。
- 终端集成:VS Code内置终端,可以在编辑器窗口下方直接开命令行,省去来回切换窗口的麻烦。在命令面板里搜索“Terminal: Create New Terminal”就能打开。
还有人问要不要用Anaconda。我的看法是:如果你只是学Python基础、写写脚本,先不用上Anaconda。它自带一大堆科学计算库,对数据分析和机器学习很有用,但它同时也会引入自己的一套环境管理机制,对新手来说属于额外复杂度。等你有明确的数据分析需求了,再考虑它也不迟。
虚拟环境这个概念我建议晚一点接触。它是用来隔离不同项目的库依赖的,比如项目A要用requests 2.x,项目B要用3.x,互不干扰。新手阶段先在全局环境里把基础玩熟,等开始写像样的项目了,再回来学虚拟环境会轻松很多。到那时你已经有足够经验来理解“为什么要隔离”,而不是被这个概念一开始就挡住。
6. 下一步怎么走:把你的脚本变成能反复使用的小工具
跑通上面的示例脚本之后,你已经有能力做一件很有成就感的事:把常用操作封装成一个小工具脚本,让它能反复使用。
举一个我自己的例子。刚学Python不久时,我经常需要批量重命名文件夹里的文件,比如把一堆“IMG_001.jpg”改成“2025_01_01_backup_001.jpg”。这个操作手动来一个个改非常烦,用Python写一个脚本则几秒钟就能跑完。
思路很简单:用os.listdir列出目录下所有文件,用os.rename改文件名,再用一段简单的循环搞定。当你把一个原来需要重复十次的机械操作变成了一个python rename_tool.py命令,你会真正体会到编程的价值——它不是课堂上应付作业的知识点,而是能解决你实际问题的工具。
这个阶段你可以给自己定一个小目标:找一个你日常生活中经常重复、纯手动操作烦人的小任务,用Python写一个脚本去简化它。任务不用大,哪怕只是整理文档、批量改格式、定期备份文件都行。写完之后,你就完成了从“跟着教程敲代码”到“为自己写代码”的第一次跳跃。
Python入门并不需要你事先掌握多少计算机知识,它更像是一把工具,你可以先用起来,再慢慢理解它内部运作的原理。安装和跑通脚本只是第一个台阶,但这第一个台阶如果走得稳,后面学什么都会省心很多。如果你在操作过程中遇到了跟文章里不太一样的情况,先回到命令行用where python和python -m pip list看看当前环境的状态,再沿着最小化验证的思路去排查,大部分问题都能自己揪出来。