「EP」01 Python是如何运行的?(重制)
Greetings! ¶
嗨!这里是阿乎的博客!(> ▽ <) /~
这或许是你在学习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
,那么可以使用以下命令来查看自己拥有的虚拟环境:
除了base
环境是在Anaconda
的安装目录下,其他的环境都是在Anaconda
的envs
目录下。
值得注意的是,每一个目录下都有一个独立的
Python
的解释器。(当然,虚拟环境还有其他更加强大的功能,我会在后续的文章中介绍)
3.1 Terminal下使用虚拟环境 ¶
如果你想在Terminal
中使用某个虚拟环境,那么一般需要手动切换虚拟环境。
以base
环境为例,我们需要先激活base
环境,然后再运行程序。
3.2 Vscode下使用虚拟环境 ¶
在Vscode
中,我们可以使用手动选择解释器的方式来选择虚拟环境中的Python
解释器。
在打开hello.py
文件后,你可以点击右下角的按钮来选择解释器。
然后点击Run
按钮,你会发现:Vscode
并没有先激活虚拟环境(没有使用conda activate base
),而是直接使用了虚拟环境中的Python
解释器来运行程序。
换句话说,所谓的切换虚拟环境,也就是切换了Python
解释器。
4. 总结 ¶
- 无论是使用
IDE
的Run
按钮,还是在Terminal
中输入命令,都是在调用Python
的解释器来运行程序。 - 对于
Anaconda
用户来说,考虑到便捷性,还是推荐使用conda activate
来切换虚拟环境。(毕竟还总需要使用pip
来安装一些包)
Have fun! 😉