你好,我是 hockor,我第一次接触 Python 应该是 18 年左右,当时还是跟衡哥搞 django 做 web 开发,这两年随着 AI 的爆发,Python 越来越受到开发者的青睐,Python 的好处总结起来我感觉有如下四点
- 通用性强 :几乎覆盖所有主流技术领域
- 生态成熟 :有成千上万的高质量库和框架
- 学习成本低 :语法简洁,适合新手入门
- 未来发展好 :AI、大数据、自动化持续推动其发展
那么作为前端工程师,我打算用几篇内容来对比学习下Python,如果你正好也有一样的需求,不妨可以看看。
版本选择
**不需要选择,无脑 Python3 即可。**因为Python 2.x已于2020年停止维护,目前主流的包几乎都是基于 Python3 的了。
另外 Mac 系统已预装Python,使用 python3 --version
即可打印出版本号。比如我的 macos 15 默认就是 3.13.2版本。
在终端输入 Python3
即可进入 Python 解释器(类似于在终端输入 node 一样),你可以尝试着print('hello world')
。
运行环境
一般来说我们学习前端的时候可以直接在终端敲 node
命令进入解释器,但是这种有个问题是我的代码没法保存,所以一般呢,我们会使用 npm init
初始化一个项目,会使用package.json
来管理三方包,并且默认三方包是安装在当前目前的node_modules
文件夹下,同时我们会使用 npm / yarn / pnpm 等来安装或卸载包。那么 Python 生态也是这样子吗?接下来我们详细介绍下。
pip vs npm
Python 的包管理器是 pip,和 Node.js 的 npm 有许多相似之处,但也存在一些重要区别:
- 包管理文件:
- Python使用requirements.txt(类似package.json)
- pip freeze > requirements.txt(类似npm init)
- 依赖安装:
- pip install package_name(类似npm install package_name)
- pip install -r requirements.txt(类似npm install)
- 包卸载:
- pip uninstall package_name(类似npm uninstall package_name)
pip常用命令
bash
# 安装包
pip install package_name
# 指定版本安装
pip install package_name==1.0.0
# 查看已安装的包
pip list
# 查看过期的包
pip list --outdated
# 升级包
pip install --upgrade package_name
# 导出依赖
pip freeze > requirements.txt
主要区别
- **全局vs本地安装:**npm默认本地安装到node_modules,而pip默认全局安装(下面会提到虚拟环境)
- **依赖管理:**npm自动处理依赖树并在package.json中维护,而pip需要手动管理requirements.txt(有点无语😅)
- **版本锁定:**npm使用package-lock.json,pip可以使用pip-tools生成requirements.txt
- **脚本运行:**npm可以在package.json中定义scripts,Python通常使用Makefile或直接运行命令
提示:因为 pip默认全局安装,所以我们强烈建议使用虚拟环境(venv)来隔离项目依赖,这样可以避免全局包冲突的问题。这一点与Node.js的node_modules本地依赖管理方式有所不同。
虚拟环境
虚拟环境是一个独立的Python运行环境,它具有以下优势:
- **项目隔离:**不同项目可以使用不同版本的包,避免包版本冲突。
- **依赖管理:**可以为每个项目维护独立的依赖列表,方便项目迁移和部署。
- **环境清洁:**避免全局环境被污染,保持系统Python环境的整洁。
而 venv 是 Python 3.3+ 自带的标准虚拟环境模块,用于创建隔离的 Python 环境。
✅ 优点:
- 无需额外安装 (Python 自带)
- 轻量简单 ,适合快速测试或教学
- 标准工具 ,适用于所有 Python 项目
❗缺点:
- 不自动管理依赖版本
- 没有统一的依赖配置文件 (你得自己维护 requirements.txt)
- 无法锁定依赖树 (容易出现"在我机器上能跑"的问题)
它默认会在我们项目文件夹内部创建一个文件夹,用来存放 Python 解释器、三方依赖包、辅助脚本等等,大致结构如下

在Mac上安装和使用venv
venv 其实就是 virtual env 的意思,Mac系统已经预装了venv模块,可以直接使用。以下是基本使用步骤:
-
创建虚拟环境:
bashpython3 -m venv .venv # 会基于你当前的Python 版本创建一个虚拟环境,存放在 .venv 文件夹内
-
激活虚拟环境:
bashsource .venv/bin/activate
-
**确认环境:**激活后,终端提示符前会显示(myenv),表示已进入虚拟环境。

-
**安装包:**使用pip安装所需的包:
bashpip install package_name
-
**退出虚拟环境:**使用以下命令:
bashdeactivate
建议为每个Python项目创建独立的虚拟环境,这样可以更好地管理项目依赖,避免潜在的冲突问题。
使用特定Python版本创建虚拟环境
当需要使用与系统默认Python版本不同的版本创建虚拟环境时,可以通过以下步骤实现:
-
安装所需的Python版本:
bashpyenv install 3.8.0
-
使用pyenv指定Python版本创建虚拟环境:
bashpyenv local 3.8.0 python -m venv myenv-3.8
-
或直接使用完整路径创建:
bash~/.pyenv/versions/3.8.0/bin/python -m venv myenv-3.8
提示:如果还没有安装pyenv,可以通过以下命令安装:
bash
brew install pyenv
这样创建的虚拟环境将使用指定的Python 3.8.0版本,无论系统默认版本是什么。可以通过以下命令验证Python版本:
bash
source myenv-3.8/bin/activate
python --version # 应显示Python 3.8.0
poetry
这样子看起来 venv
还不错,至少不会出现全局包冲突等等问题了,但是熟悉了 nodejs 那一套的我们,肯定希望还能进一步,比如自动帮我管理依赖,帮我做版本锁定等等,那么接下来介绍的 poetry,看起来可以帮我们完成这个目标
Poetry(python-poetry.org/) 是一个现代化的 Python 依赖管理和打包工具,它旨在简化 Python 项目的依赖管理和打包流程。相比传统的 pip + requirements.txt 方案,Poetry 提供了更强大和优雅的解决方案。
主要特点
- **依赖管理:**使用 pyproject.toml 文件声明项目依赖,类似 package.json
- **虚拟环境管理:**自动创建和管理虚拟环境,无需手动管理 venv
- **锁文件机制:**通过 poetry.lock 确保依赖版本的一致性,类似 package-lock.json
- **构建和发布:**简化了 Python 包的构建和发布流程
基本使用方法
-
安装 Poetry:
bashcurl -sSL https://install.python-poetry.org | python3 -
-
创建新项目:
bashpoetry new my-project # 或在现有项目中初始化 poetry init
-
添加依赖:
bashpoetry add requests # 添加开发依赖 poetry add pytest --dev
-
安装依赖:
bashpoetry install
pyproject.toml 示例
toml
[project]
name = "python-learn"
version = "0.1.0"
description = ""
authors = [
{name = "[email protected]"}
]
license = {text = "MIT"}
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"requests (>=2.32.3,<3.0.0)"
]
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.group.dev.dependencies]
pytest = "^8.4.0"
poetry.lock文件示例

怎么样,前端开发者是不是觉得很眼熟。
与 venv+pip 相比,Poetry 提供了更类似的现代包管理体验,使 Python 项目的依赖管理变得更加简单和可靠。更多的使用请参考官网:python-poetry.org/docs/
PyPI vs npmjs
PyPI (Python Package Index) 类似于 npm registry ,两者都是各自语言的官方包注册中心:
Jupyter
ok,通过以上的基本介绍我们先对 Python 的基础管理有了个大致的认知,接下来,我们可以开始写写代码了,在这里也推荐一下 Jupyter 给大家,这是是一个基于 Web 的交互式开发环境,允许你:
- 在浏览器中编写和运行 Python(或其他语言)代码
- 实时查看结果
- 插入文字说明、公式、图表、图像等内容
- 将整个过程保存为 .ipynb 文件,方便分享和复现
所以对于初学者而言,我比较推荐使用 Jupyter,因为它不仅可以执行代码,还能插入markdown 内容,而且 vscode 也有插件 ,github也能很好的渲染。
vscode 插件
插件中心搜索jupyter
即可

安装以后,我们就可以创建一个xxx.ipynb
结尾的文件即可。

github中的渲染

ok,以上就是我们第一节关于 Python 环境相关的介绍,对比着 Node.js 的包管理咱们对 Python 包管理有了个简单的认知,后续我们开始正式进入到 Python 的相关知识中,我们下一节再见👋