Python初学笔记(一)先把环境和运行方式弄明白

发表于 2025-02-12 22:10 1200 字 6 min read

Spring AI学习笔记(四)工具调用和MCPSpring AI学习笔记(三)RAG从文档入库到回答Spring AI学习笔记(二)ChatClient从怎么调到怎么封装Spring AI学习笔记(一)它到底解决什么问题java新版本-java25学习笔记(四)用JFR和GC日志做一次体检java新版本-java25学习笔记(三)虚拟线程要和资源边界一起看java新版本-java25学习笔记(二)运行时基线先统一java新版本-java25学习笔记(一)LTS版本对比和学习路线主流AI Agent能力对比与工程选型我用Kiro做了个自己的工具站盘一盘虚拟线程我用Trae做了个AstrBot的AI角色扮演插件Python初学笔记(六)常用标准库先学这几个Python初学笔记(五)读写文件和处理异常Python初学笔记(四)函数让代码开始有结构Python初学笔记(三)条件、循环和推导式Python初学笔记(二)变量和基础类型比想象中重要Python初学笔记(一)先把环境和运行方式弄明白主流AI大模型能力对比Java 21和Spring Boot 3升级笔记(五)日志指标与可观测性Java 21和Spring Boot 3升级笔记(四)数据访问层适配Java 21和Spring Boot 3升级笔记(三)虚拟线程使用边界Java 21和Spring Boot 3升级笔记(二)Jakarta迁移要点Java 21和Spring Boot 3升级笔记(一)工程基线整理How Can We Tolerate Magic Values! Major Overhaul of JPA Specification!处理生僻字乱码:JPA框架对于Oracle的NVarchar2,NChar,NClob类型支持Redis Stream能不能当轻量消息队列用RocketMQ 5学习笔记:普通消息之外要看什么事件流不是换个消息队列这么简单Kubernetes学习笔记04:发布、排障和观测Kubernetes学习笔记03:配置、密钥和存储Kubernetes学习笔记02:Deployment、Service和IngressKubernetes学习笔记01:Pod和控制器mysql索引原理02--存储引擎索引的实现mysql索引原理01--索引的数据结构
This post is not yet available in English. Showing the original.
  开始补 Python,我的第一感觉是:它确实很适合入门,但也很容易因为“看起来简单”而忽略基础。   比如很多教程第一句就是,确实能跑。但跑在哪里?用的是哪个 Python?依赖装到哪里了?为什么有时候命令是,有时候是?这些问题不弄清楚,后面学到包管理和项目开发时会很乱。   所以第一篇不急着写复杂代码,先记录 Python...

前言

  开始补 Python,我的第一感觉是:它确实很适合入门,但也很容易因为“看起来简单”而忽略基础。

  比如很多教程第一句就是print("Hello World"),确实能跑。但跑在哪里?用的是哪个 Python?依赖装到哪里了?为什么有时候命令是python,有时候是python3?这些问题不弄清楚,后面学到包管理和项目开发时会很乱。

  所以第一篇不急着写复杂代码,先记录 Python 环境、解释器、虚拟环境和运行方式。

Python 是解释型语言吗

  刚开始学时,经常会听到 Python 是解释型语言。

大概可以理解为:我们写的.py文件不是先编译成一个独立可执行文件再运行,而是交给 Python 解释器执行。

比如:

print("hello python")

保存成hello.py后,可以运行:

python hello.py

这里真正执行代码的是 Python 解释器。你电脑里装的 Python 版本不同,执行结果和可用特性也可能不同。

这点很重要。因为 Python 版本变化会影响语法和库。学习阶段最好固定一个比较新的稳定版本,不要电脑上多个版本混着用。

python 和 python3

  很多资料里命令不统一,有的写python,有的写python3

这和操作系统、安装方式、历史版本都有关系。有些系统里python可能指向 Python 2,有些指向 Python 3,有些根本没有这个命令。

现在学习当然应该用 Python 3。可以先看版本:

python --version
python3 --version

如果两个命令都能用,要确认自己后面一直用同一个。不要今天用python装依赖,明天用python3运行程序。这样很容易出现“明明安装了包,运行却说找不到”的问题。

交互模式很好用

  Python 有一个很适合学习的交互模式。

直接输入:

python

进入后可以一行一行执行:

1 + 2
print("hello")

这个模式适合试小代码。比如测试字符串方法、列表操作、简单计算,不用每次新建文件。

但它不适合写完整程序。稍微复杂一点,还是应该放进.py文件里。文件能保存、能重复运行、能提交到 Git,这才是项目开发的方式。

虚拟环境是什么

  Python 初学最容易绕晕的是依赖安装。

比如你学爬虫装了requests,学数据分析装了pandas,学 Web 又装了flask。如果都装到全局环境,时间久了会很乱。

虚拟环境就是给每个项目一个相对独立的 Python 依赖空间。项目 A 装的包,不影响项目 B。

创建虚拟环境:

python -m venv .venv

激活虚拟环境:

source .venv/bin/activate

激活后再安装依赖:

pip install requests

这样依赖会装到当前项目的.venv里。

pip 是干什么的

  pip 是 Python 常用包管理工具。

安装包:

pip install requests

查看已安装包:

pip list

导出依赖:

pip freeze > requirements.txt

别人拿到项目后,可以用:

pip install -r requirements.txt

安装同样依赖。

刚开始学习时,不一定要马上研究 Poetry、uv、conda 这些工具。先把 Python、venv、pip、requirements.txt 理解清楚,已经够用了。

脚本怎么运行

  最普通的方式就是:

python demo.py

如果文件里有:

print("start")

运行时就会输出。

Python 没有 Java 那样的public static void main,但常见写法是:

def main():
    print("hello")


if __name__ == "__main__":
    main()

这段代码的意思是:当这个文件被直接运行时,执行 main 函数;如果它被别的文件 import,就不要自动执行 main。

刚开始看可能有点怪,但后面写模块时会经常用到。

IDE 也要认准解释器

  用 VS Code、PyCharm 这类工具写 Python 时,要确认 IDE 选择的是哪个解释器。

如果命令行激活的是.venv,但 IDE 用的是全局 Python,就会出现代码提示和运行结果不一致。

所以每个项目创建虚拟环境后,要在 IDE 里选择当前项目的.venv/bin/python

这一步很基础,但能省很多排查时间。

小结

  Python 入门第一步,不只是会写print

  要先弄清楚解释器版本、运行命令、交互模式、虚拟环境、pip 和 IDE 解释器选择。环境稳定了,后面学变量、函数、文件、第三方库才不会总被“包找不到”“版本不对”打断。

  我的理解是,学习 Python 可以简单开始,但不能糊涂开始。环境这块花一点时间,后面会轻松很多。

If you enjoyed this, leave a comment~

© 2019 - 2026 VincentHo @VincentHo
Powered by theme astro-koharu · Inspired by Shoka