「EP」01 Python是如何运行的?(重制)
Greetings! ¶
嗨!这里是阿乎的博客!(> ▽ <) /~
# hello.py
print("Hello, World!")这或许是你在学习Python时运行的第一个程序。
你还记得当时是怎么运行这个程序的吗?是点击IDE的Run按钮(小三角)吗?还是在Terminal中输入python hello.py呢?
IDE:即Integrated Development Environment,集成开发环境。比如PyCharm、VSCode等等。其一般为用户提供了代码编辑、编译、调试等功能。(也包括自动补全、错误提示、代码格式化等等)
Terminal: 终端,如Windows的cmd、PowerShell,Linux的Terminal,等等。
为什么电脑知道要用Python而不是其他语言来运行这个程序呢?我将在本章分享一下我的理解。
1. 解释器:Interpreter ¶
无论是使用IDE自带的按钮,还是在Terminal中输入命令,都是在调用Python的解释器来运行这个程序。
那么,什么是解释器呢?
解释器是一种将高级语言翻译成机器语言的程序。它会读取我们写的Python代码,然后将其翻译成机器语言,最后让计算机执行。
举个例子,如果我们在Windows的cmd中输入python,那么我们就会根据之前在环境变量中设置的Python的路径,找到Python的解释器(python.exe),然后运行这个解释器。
那么在cmd中输入python hello.py就相当于:“使用Python的解释器来运行hello.py这个文件”,也就是我们常说的**“运行hello.py这个程序”**。
再比如说,如果你在使用虚拟环境,那么每个环境的目录下都会有一个Python的解释器这也解释了为什么我们可以在不同的虚拟环境中使用不同版本的Python。(下面会有一个相关的例子)
2. 使用IDE和Terminal的区别 ¶
对于大多数IDE来说,其内部内置了一个集成终端(Integrated Terminal),在点击Run按钮时,IDE会自动在这个终端中输入相应的命令来运行程序。
而在Terminal中,我们需要手动指定想要使用的Python解释器路径。
2.1 Terminal中手动运行程序 ¶
我直接使用Vscode的Integrated Terminal来运行程序,输入python hello.py,这样会使用在系统注册的默认解释器,即/bin/python来运行程序。
2.2 Vscode下点击按钮运行程序 ¶
以我的Linux系统为例,我在Vscode中点击Run按钮,Vscode会选择位于/bin/python的Python解释器来运行程序。
3. 虚拟环境(Virtual Environment) ¶
如果使用的是Anaconda,那么可以使用以下命令来查看自己拥有的虚拟环境:
conda info --envs除了base环境是在Anaconda的安装目录下,其他的环境都是在Anaconda的envs目录下。
值得注意的是,每一个目录下都有一个独立的
Python的解释器。(当然,虚拟环境还有其他更加强大的功能,我会在后续的文章中介绍)
3.1 Terminal下使用虚拟环境 ¶
如果你想在Terminal中使用某个虚拟环境,那么一般需要手动切换虚拟环境。
以base环境为例,我们需要先激活base环境,然后再运行程序。
conda activate base
python hello.py3.2 Vscode下使用虚拟环境 ¶
在Vscode中,我们可以使用手动选择解释器的方式来选择虚拟环境中的Python解释器。
在打开hello.py文件后,你可以点击右下角的按钮来选择解释器。
然后点击Run按钮,你会发现:Vscode并没有先激活虚拟环境(没有使用conda activate base),而是直接使用了虚拟环境中的Python解释器来运行程序。
换句话说,所谓的切换虚拟环境,也就是切换了Python解释器。
4. 总结 ¶
- 无论是使用
IDE的Run按钮,还是在Terminal中输入命令,都是在调用Python的解释器来运行程序。 - 对于
Anaconda用户来说,考虑到便捷性,还是推荐使用conda activate来切换虚拟环境。(毕竟还总需要使用pip来安装一些包)
Have fun! 😉
