3.Python 环境管理工具
4.Python 第三方包
5.IDE
6.ChatPython 内测中,敬请期待
如今,Stata已经是经管、社科领域师生和研究者的“原生”工具,但这个群体对大数据处理的利器Python却没那么“熟”。然而,无论是从数据抓取、大数据清洗还是从使用机器学习算法的角度来说,Python又是当前经管、社科领域师生不得不面对的工具。
的确,要掌握作为开源工具的Python生态,其门槛明显高于作为商业统计软件的Stata。不仅许多术语与 Stata 不同,而且与Stata集中到一个安装包"搞定"不同,Python比较“散装”,它由多个组件组成,需要用户自行组合。
为帮助快速入门Python,本文将试着用经管、社科领域师生“能看懂”的语言来介绍下面这几个Python核心概念和相应的术语,以及他们如何相互配合形成完整的Python应用。尤其是通过对比 Stata 和 Python方式(如下表所示),来帮助大家更方便地理解python的对应概念。
相关概念 | Python | Stata |
代码执行 | Python解释器(python.exe) | Stata进程(StataMP-64.exe) |
多版本管理(环境管理) | conda、venv、uv 等 | 需要安装不同版本Stata |
包管理 | pip install / conda install | ssc install / net install |
IDE 工具 | PyCharm、Spyder、JupyterNotebook 等 | Stata软件本身就自带IDE |
Python 解释器
Stata作为一款专业数据分析商业软件,可以简单将其拆分为由一个专业且易上手的用户界面(前端)和负责执行Stata命令的运算内核(后端)两个部分(如下图所示)。用户在Stata图形界面中通过鼠标键盘的菜单操作、或者直接输入命令执行、亦或是运行do文件,都会转换成Stata运行指令交给Stata运算内核处理。运算内核处理完成后,将执行结果返回到图形界面,渲染出分析结果表或者是一个可视化图形。
Stata软件的简单拆解
对应于Stata的运算内核,Python中负责“运算”的,被称为python解释器。但是,作为一个开源的通用编程语言(理解Python的开源属性,对大家理解其他Python生态工具,是非常重要的),Python官方并没有提供一个面向用户的图形界面,因为其主要工作是开发和维护Python语言标准,以及负责运行Python代码的Python解释器。和Stata较为封闭的生态不同,只要符合Python标准(这是公开的),任何商业或非商业组织都可以开发出优秀的Python图形界面,这在给用户更多选择的同时,也在一定程度上造成初学者选择困难。
目前,市面上存在大量优秀的图形界面(更专业的说法是IDE,我们在后文详细介绍)由其他商业机构或者开源组织提供,例如 PyCharm、Spyder、JupyterNotebook等。
Python 代码运行方式
与Stata中的do或者ado文件对应,Python 语言的代码文件(也称脚本文件)后缀名为.py,如 hello.py。在Stata当中,do文件如何运行一目了然。而在 Python 当中,是由 Python 解释器(Python.exe)来执行并得到结果。如下图所示,二者的运行逻辑本质上来说逻辑是一致的。
Stata/Python 运行逻辑(简化版)
我们可以像Stata一样,直接双击运行 Python.exe,在一个“黑窗口”中执行Python代码(如下视频所示)。如上文所述,Stata 默认带有图像化界面(GUI - Graphical User Interface),可以通过菜单操作直观展示数据的导入情况和命令的输出结果,而视频中运行Python.exe是命令行界面(CLI - Command Line Interface),只能通过纯文本命令进行交互,返回的结果一般也是纯文本。
双击运行 Python.exe 进行交互就简单演示
命令行(Command Line)对经管、社科专业的同学来说可能比较陌生,但在 Python 使用过程中是必然会接触到的。简单来说,命令行是一种通过输入文本命令来与操作系统(如 Windows、MacOS 等)交互的界面,也称为命令行界面。
下面的短片演示了如何通过命令行工具在Windows的桌面上创建一个文本文件。视频中,我们首先打开了 Windows 自带的命令行工具PowerShell,然后,通过cd ~/Desktop 命令进入到桌面,最后,使用 echo "文本内容" >> test.txt 命令,将 "文本内容" 写入到 test.txt 文件中,由于一开始不存在 test.txt 文件,该命令会自动创建一个空文件,并写入指定的内容。平常我们都是用鼠标和键盘与操作系统交互的来完成文件的创建和写入内容的,而在 PowerShell 中,使用纯文本命令也可以实现相同的效果。
命令行工具 PowerShell 简单演示
我们双击 Python.exe 打开了 Python 命令行交互页面,本质上是先打开了Windows的终端,然后在终端中执行了Python,效果是完全一样的。如下视频所示:
在 PowerShell 中打开 Python
但通常情况下,我们都是通过上文已经提及的 IDE(如 PyCharm、VS Code 等,我们在后文介绍)去调用 Python 。这就引出了另一种 Python 执行代码的方式 —— 批量执行:在命令行终端的一行中,输入 python解释器路径、空格、代码文件路径,最后回车执行,如下图所示。PyCharm、VS Code 都用这种调用方法。
需要额外说明的是,在阅读本文之前,经管、社科专业的同学可能已经接触或者使用过 JupyterNotebook 或者 Spyder 这类 IDE 工具,它和 Python.exe 的交互并非前文所述的两种,而是通过 IPython 这个中间层的转发,如下图所示,如果项目需要使用 Spyder或者Jupyter,需要先安装好 IPython 包(我们在后文会讲如何安装第三方包)。
IPython 是出于”增强科学计算体验”而开发的命令行界面,可以理解为专门为了提高Python交互及使用体验的,PowerShell 的增强版本,例如,直接在 PowerShell 中启动 python 后,没有代码补全,代码高亮等功能,而 IPython 带有这些功能。
Python 环境管理工具
工作较久的研究者可能使用过多个 Stata 版本,每个 Stata 版本之间语法会有差异,因此早期的工作代码需要用较早版本的Stata,用新的Stata版本运行代码可能会报错。这个问题 Python 也存在。
由于 Python 解释器在不断升级,不同版本的Python的语法规范有一定的变动。因此,早期开发的代码可以在 Python3.9版本的解释器上成功运行,但是在3.11上可能无法成功运行。我们可以通过重构的方式升级我们的代码,但成本是非常高的,所以最好在一个项目立项(在我们这里是开启某一项实证研究)时,就确定好指定的Python版本(其实就是Python解释器的版本)。但对于经管、社科领域研究者来说,往往需要同时维护好多项目,有新项目也有老项目,所以电脑上要装非常多的不同版本的Python解释器,此外不同项目需要的第三方包也不一样,也就引出了 Python 环境管理问题 —— 如何管理多个 Python 解释器。
下表列出了几个具有代表性的环境管理工具。在经管、社科领域的数据分析场景中,Conda 比较适合。
需要注意的是,Conda 工具本身是免费的,可以自由使用、修改和分发。Conda 通常通过两个主要发行版分发:Anaconda 和 Miniconda。
Anaconda:是一个包含 Conda、Python 和超过 1,500 个预装科学计算包(如 NumPy、Pandas、Jupyter)的大型发行版。Anaconda Individual Edition(个人版)是免费的,适用于个人学习、研究和小型项目。
Anaconda Commercial Edition(商业版)是收费的,面向企业用户,提供高级支持、私有包仓库、团队协作和长期支持等服务。特别地,anaconda.org 上的 Anaconda 仓库禁止在拥有超过200名员工的组织中进行商业使用。
Miniconda:是一个轻量级版本,仅包含 Conda 和 Python,不预装额外的科学包。Miniconda 本身是免费的,但其默认使用与 Anaconda 相同的 defaults 仓库,因此同样存在上述商业使用限制。
需要注意,Python环境管理工具,为终端命令行工具,不带GUI界面,以 Conda 为例(提前安装好 miniconda3),我们创建一个独立的python环境,如下视频所示。当然,我们也可以在各类IDE当中调用这些环境管理工具。
使用 Conda 创建独立的 Python 环境
Python 第三方包
Stata命令可以分为内置命令和第三方命令(ado文件),内置命令是安装Stata之后就自带的,例如 summarize。而第三方命令需要通过 ssc install 进行安装,例如 reghdfe (多维固定效应线性回归)。同样,Python也分为内置包和第三方包,内置包又叫标准库,无需安装即可直接导入使用,涵盖文件操作、网络编程、数据处理等。第三方包又叫第三方库,例如大家耳熟能详的 Pandas,需要通过 pip install pandas 进行安装。
Stata 第三方命令主要来源是 Statistical Software Components (SSC) archive,是一个由波士顿学院(Boston College)维护的庞大外部命令库,主要由 Christopher F. Baum 维护,他也是 《Stata journal》副主编之一。它汇集了用户开发的各种Stata特性(如数据处理、统计分析、绘图),允许用户通过 ssc install 命令轻松下载安装,是查找、更新非官方命令的主要资源。对于Python,第三方包/库的主要来源是 PyPI (Python Package Index) 是Python官方的第三方软件包仓库,被誉为Python开发者的“应用商店”。它集中存储、发布和分享海量开源的Python库(超过627,000个),供开发者通过pip等工具轻松安装和管理项目依赖(第三方包在项目中,它又叫做依赖。比如说pandas就是一个这个项目的依赖,但是从Python这个角度来说,它就是一个第三方的包。只是一个东西的不同的称呼),PyPI由Python官方的 Python Packaging Authority (PyPA) 进行维护。
相关概念 | Stata | Python |
第三方包源 | SSC(http://fmwww.bc.edu/RePEc/bocode/) | PyPi(https://pypi.org/) |
安装方式 | ssc install 包名 | pip install 包名 |
Python的第三方包安装非常简单,使用 pip install 包名 即可安装,pip 命令在python安装完成后自带,然后在Python中输入代码 import 包名 实现调用(如下视频所示),注意,如果发现 pip install 非常慢,需要切换国内镜像源进行下载安装,语法如下:
# -i 参数设置 Python包源的地址# package-name 改为具体的包名称pip install package-name -i https://pypi.tuna.tsinghua.edu.cn/simple
注意:一个第三方库可能会依赖其他的第三方库,因此在安装时,除了安装该库,还会一并安装其他依赖的第三方库。
IDE
对于习惯使用 Stata、SPSS、Eviews 等带有图形界面的统计软件的经管、社科同学,对 IDE 一词可能比较陌生。IDE(Integrated Development Environment,集成开发环境)是用于协助用户开发程序的软件,将代码编辑、执行、调试等多种工具集中在一个图形用户界面中。其实用户运行 Stata 后出现的用户界面就是一个 IDE,直接可以上手使用。上文已经提及,Python 官方并没有提供像Stata图形界面一样的IDE,为了提高使用Python编写程序的效率,其他商业公司或者开源组织,都在为 Python 积极开发好用的IDE工具。
值得强调的是,近两年来,AI 在辅助编程方面取得了极大的进步,IDE 工具正在快速整合AI能力,用于辅助甚至可以取代人工写代码。尽管当前的IDE无有不AI,但我们仍可区分传统IDE和AI原生的IDE两种类型,传统IDE并非没有AI功能,它通常是通过插件来调用AI能力的,没有新开发的AI原生的IDE那么“激进”。
传统的IDE
就像我们写论文,都会用 word 而不是纯文本编辑器。通常使用Python也会用更加专业的界面,就是IDE(集成开发环境),它是把代码编辑、运行环境、调试工具、图形界面等功能打包在一起的一站式工作台。以Spyder为例(在经管、社科领域,使用免费的Spyder就很好),IDE大概长下图这样,和 Stata 还是较为相似的,都是针对python在数据分析领域的应用做了优化,比如 实时查看变量的变化、把可视化图表的展示集成在IDE中。
注:上图来自于 Spyder IDE 的官方网站。
和 Python解释器不同,IDE 工具不是由Python官方提供的,常见的 IDE 有很多,有收费的,有免费的,各有特色,下表列出了常见的传统IDE。
如图下所示,IDE 工具的能力可以分为如下四个部分:代码编辑、运行环境管理、项目管理、特色功能。
值得注意的是,在 IDE 中支持调用 Conda、uv 等Python环境管理工具的命令,为每个项目创建特定的Python解释器版本,我们通过 Spyder 来直接演示一下,如下视频所示。前面说过,Spyder 是要通过 IPython 才能和 Python 解释器交互的,因此注意要提前安装好 IPython 组件。幸运的是,Spyder IDE 安装时是自带了一个专用的 Python 解释器(它把Spyder运行所需要的依赖,像Ipython什么都装好了)。
AI时代的IDE
2023-2025年,Cursor 以 AI 辅助编程的巨大创新,干翻了一众传统 IDE 工具,只需要对话就可以生成项目代码的 vibe coding 时代正式来临。随后, Trae、Qoder 等 AI 原生的 IDE 工具开始爆发,这些 IDE 工具保留了传统 IDE 工具的常见功能,但在每个模块中都深度整合了 AI 功能,包括但不限于:代码生成、项目理解、BUG修复等等。
Cursor 是由美国公司 Anysphere 于 2023 年初发布,在开源的 VS Code 基础上,二次开发而来,即拥有 VS Code 强大的 IDE 基础功能,又集成了先进的大语言模型,能够理解自然语言并生成相应代码,为开发者带来全新的编程体验。
Trae 是字节跳动旗下的 AI 原生编程工具,2025年初发布,类似 Cursor 的 IDE 工具,可以让用户通过自然语言编写网页和软件。
Qoder 是阿里巴巴于2025年8月推出的 AI 编程平台,将增强的上下文工程与智能代理无缝集成,全面理解代码库,系统性地解决软件开发任务。
除了带 GUI (Graphic User Interface)的 AI 原生IDE,还有一些 AI 工具没有 GUI ,都是在命令行终端中执的,例如:claude code、opencode 等等。
Claude Code 是由 Anthropic 推出的终端(Terminal)AI 代理编程工具,不仅能对话,更能理解整个项目代码库并自主完成功能开发、调试、Git 提交等工作。它深入集成于开发环境,能直接读取文件、运行终端命令,定位为“AI 伙伴”而非普通代码生成器。
OpenCode 是一个开源的 AI 编程代理(AI coding agent),支持在终端(Terminal)、桌面应用和主流 IDE(如 VS Code)中与 AI 交互完成代码相关任务。OpenCode 可以帮助我们理解代码库、编写新功能、重构代码、修复 Bug 等,大幅提升开发效率。OpenCode 类似于 Claude 的 Code 模式或 Cursor 的 Agent 功能,但完全开源、隐私优先,支持多种大语言模型(LLM),并强调终端体验。
ChatPython 内测中,敬请期待
由企研社科团队开发和运维的ChatPython 就是一个 AI 原生的IDE,和 Trae、Qoder 类似,但 ChatPython 聚焦 Python 语言,并专门致力于服务经管、社科方向的师生和研究者开展数据处理、数据分析的教学和科研工作。通过提供符合社科思维的工具,来辅助经管、社科的师生使用 Python 进行数据分析。
ChatPython的特点如下:
具备传统IDE的功能:
专注服务经管、社科领域的数据分析:
AI 原生支持:
参考资料
Pycharm 官方网站:
https://www.jetbrains.com/zh-cn/pycharm/
VScode 官方网站:
https://code.visualstudio.com/
Spyder 官方网站:
https://www.spyder-ide.org/
点击搜索你感兴趣的内容吧