35岁Java程序员学AI Day2:从装环境到写第一行Python,踩了3个坑
昨天发了第一篇文章,说了我要用90天转型AI应用开发。今天Day 2,第一步------把Python环境搭起来。
说实话,在这之前我一直觉得Python跟我不搭边------我写了快十年Java,Spring Boot那套用得飞起,IntelliJ IDEA是我的第二个家。但真正研究AI应用开发才发现,Python是这个领域的"普通话"。大模型的SDK、LangChain、向量数据库客户端,几乎全是Python优先。你硬要用Java调也能调,但就像去法国旅游非要讲日语------能活着回来,一路上全是障碍。
所以今天,我从零开始装Python环境。
一、装Python:比装JDK简单,但有个坑
Java程序员装环境的第一反应:去哪下载?要不要配环境变量?有没有类似JDK的东西?
Python比JDK简单太多了。直接去 python.org 下载安装包,Windows双击下一步就行。版本我选了 Python 3.13.15------最新的是 3.14.7 但才发布 9 天,AI 生态还没适配完,老老实实用稳定版。
但有一个坑,我差点踩了。
安装界面第一个页面,底部有个复选框 "Add Python to PATH" 。这个框默认不勾。如果你不勾,装完在命令行敲 python 会提示"不是内部或外部命令"------跟当年Java装完忘配 JAVA_HOME 一模样。

我习惯性地一路下一步,差点跳过。还好多看了一眼,勾上了。
css
✅ Add Python to PATH ← 务必勾上!
装完按 Win+R 输 cmd 打开命令行,验证一下:
vbnet
C:\Users\Administrator> python --version
Python 3.13.15
C:\Users\Administrator> pip --version
pip 25.x from C:\Python313\Lib\site-packages\pip (python 3.13)
看到版本号,环境就算通了。对比一下Java:装JDK → 配JAVA_HOME → 配PATH → 配CLASSPATH → 验证java -version。Python一个勾就搞定了。
二、pip:Python的Maven,但更轻
Java用Maven或Gradle管理依赖,需要写一个pom.xml或build.gradle。Python用pip,直接命令行装,不用写配置文件。
ini
# 装一个库
pip install requests
# 装指定版本
pip install requests==2.31.0
# 看装了哪些
pip list
# 卸载
pip uninstall requests
第一次用的时候我本能地去找"pip的配置文件在哪"------习惯了Maven的pom.xml,总觉得得有个文件管理依赖。结果发现不需要,直接命令行敲就行。
后来想想,这种方式适合快速验证想法,但项目大了依赖管理会乱。所以Python有个 requirements.txt,相当于简化版的pom.xml:
bash
# 把当前环境的依赖导出
pip freeze > requirements.txt
# 别人拿到项目后一键安装
pip install -r requirements.txt
一个国内必做的配置:pip默认从国外源下载,速度感人。换成国内镜像,下载速度从KB/s到MB/s:
arduino
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
这条命令一劳永逸,以后所有pip install都走清华源。这就跟Maven配阿里云镜像一个道理。
三、虚拟环境:Java里没有的东西
这是Java程序员最容易跳过的一步------因为Java里没有这个概念。
Java的做法是:一个项目用一套依赖,Maven帮你管理版本冲突。Python不一样------所有项目的依赖默认装在全局,项目A要requests 2.28,项目B要requests 2.31,就打架了。
解决方案是虚拟环境(venv)。每个项目建一个独立的Python环境,互不干扰。
bash
# 在项目目录下创建虚拟环境
python -m venv venv
# 激活(Windows)
venv\Scripts\activate
# 激活后命令行前面会出现 (venv) 标识
# 这时再 pip install 就是装到这个虚拟环境里,不影响全局
第一次看到这个我有点抵触------太麻烦了,我就学个Python调个API,搞什么虚拟环境?
后来想通了:这跟Java里每个项目有自己的pom.xml是同一个道理,只是实现方式不同。Java是Maven帮你隔离,Python是venv帮你隔离。现在养成习惯,每个项目先建venv再装依赖。
PyCharm会自动帮你处理这件事------创建项目时勾选"New environment using Virtualenv",IDE自动建好,你不用手动敲命令。
四、IDE:直接上PyCharm,别犹豫
我试了VS Code,也试了Jupyter Notebook,最后还是选了PyCharm。
原因很简单------我用了十年IntelliJ IDEA,PyCharm是同一家公司(JetBrains)出的,快捷键几乎一样,界面布局一样,调试方式一样。从IDEA切到PyCharm,零学习成本。
| 对比项 | PyCharm | VS Code |
|---|---|---|
| 上手成本 | IDEA用户零成本 | 需要装Python插件 |
| 代码补全 | 强 | 够用 |
| 调试器 | 跟IDEA一样 | 稍弱 |
| 启动速度 | 慢 | 快 |
| 免费 | Community版免费 | 免费 |
如果你也用IDEA,直接装PyCharm Community版,别浪费时间纠结。
五、PyCharm建项目时踩的坑
环境装好了,IDE也开了。本以为建个项目是顺手的事,结果又踩了两次坑。
坑1:第一次建项目结构不对。
我第一次随手点了个目录打开 PyCharm,结果左侧项目树只显示 "External Libraries" 和 "Scratches and Consoles",没有项目文件夹。运行 Python 脚本时报错 "Python interpreter is not selected"------因为根本没有解释器配置。
正确做法 :用 File → New Project 建项目,不要直接打开一个空目录。
坑2:项目路径有中文。
我建项目时随手填了个路径 E:\MyJava\代码库\PythonProject,项目能建出来,但虚拟环境创建的时候偶尔报奇怪的编码错。后来查了下,Python 对中文路径支持不好,跟 Java 里也建议纯英文路径一个道理。
改成:
✅ E:\PythonProjects\hello-python
路径不要带中文和空格。 这个跟 Java 项目的最佳实践一样,纯英文路径最稳。
坑3:选 Project venv 还是 uv?
PyCharm 新建项目有四个选项:
| 选项 | 含义 |
|---|---|
| Project venv | Python 自带虚拟环境 |
| uv | 新的 Python 包管理器(速度快) |
| Base conda | 用 conda 管环境(需要先装) |
| Custom environment | 用已有的 Python 环境 |
我选了 Project venv------uv 虽然新潮,但网上 90% 的教程都是基于 venv 的,出问题好搜答案。学新东西时,跟大部队走最稳。
六、跑通第一行代码
环境建好了,写第一行代码验证:
python
print("Hello, Python! 我来了。")
# 试试Java程序员最熟悉的操作
name = "Java"
years = 10
print(f"我写了{years}年{name},今天开始学Python。")
右键编辑器 → Run 'hello'(或者按 Shift+F10,跟 IDEA 一样),控制台输出:
vbnet
Hello, Python! 我来了。
我写了10年Java,今天开始学Python。
Process finished with exit code 0

看到 Process finished with exit code 0 那一刻,感觉跟十年前第一次在 Eclipse 里跑出 Hello World 一模一样。
七、几个Java程序员不习惯的语法
环境跑通后,我花了一个下午过了 Python 核心语法。有 Java 基础,语法层面很快,但有几个地方真的不习惯。
没有分号,但缩进要命。
Java 里缩进是风格问题,你缩 4 格还是 8 格编译器不在乎。Python 里缩进是语法------缩错一格直接报错。
arduino
// Java
if (ready) {
System.out.println("go");
}
bash
# Python
if ready:
print("go")
看着简单,但嵌套三四层的时候,少缩一格就是另一个世界的入口。我就因为多了一个空格 Debug 了好几分钟。
变量不用声明类型。
Java 写了十年,手已经形成了肌肉记忆:int x = 1;。到了 Python 变成 x = 1。刚开始老忍不住加类型声明,删了又加,加了又删。
后来想想,这是 Python 的设计哲学------类型不重要,行为才重要。写惯了强类型语言,一开始确实没有安全感。但快速验证想法的时候,少写类型声明真的快很多。
列表推导式,真香。
Java 里把列表每个元素乘以 2:
ini
List<Integer> result = new ArrayList<>();
for (Integer x : list) {
result.add(x * 2);
}
Python 一行:
ini
result = [x * 2 for x in list]
用了两次就不想回去了。
没有深入,但够用了
说实话,Day 2 我没有把 Python 学多深。装饰器只是理解了原理,面向对象快速过了(跟 Java 的 class 差不多,区别是没有 private 关键字,靠约定------变量名前加下划线表示"私有")。
我的目标不是成为 Python 专家,而是尽快能调用大模型 API。就像学开车------你不需要懂发动机原理,你需要的是能把车开上路。
周末我打算直接上手调大模型 API,用 Python 调通义千问的接口,让它返回一句话。这才是学 Python 的真正目的。等到调通 API 那一刻,Python 对我来说就不是"另一门语言"了,而是"干活的工具"。
给同样想转 AI 的 Java 程序员的建议
- 装 Python 时务必勾选"Add Python to PATH" ------少走一步弯路
- pip 换国内源------不换的话下载速度会让你怀疑人生
- 项目路径不要有中文------Python 对中文路径支持不好,跟 Java 一个道理
- 每个项目建虚拟环境------别嫌麻烦,跟 Maven 管依赖一个道理
- IDE 直接上 PyCharm------IDEA 用户零学习成本,别浪费时间纠结
- 语法别从头学------找一篇"Java vs Python 语法对照",半小时过完核心差异
- 任务驱动------别"学完再做",直接定一个小任务(比如"调一个 API"),遇到不会的就查
35岁Java程序员的90天AI转型实验,Day 2。 环境搭好了,Hello World 跑通了,下一步:用 Python 调通第一个大模型 API。 关注我,见证过程。