杰瑞科技汇

树莓派为何同时有Python和Python3?

说得好!这是一个在树莓派新手中非常常见且重要的问题,我来为你详细解释一下。

树莓派为何同时有Python和Python3?-图1
(图片来源网络,侵删)

树莓派上同时有 pythonpython3 两个命令,是为了兼容旧代码和方便新项目,它们指向的是不同版本的 Python 解释器。

下面我们来分解一下:


两个命令分别指向什么?

  • python3

    • 指向什么:这是现代的、默认的、官方推荐的 Python 版本,在最新的树莓派 OS (如 Raspberry Pi OS with desktop) 中,它通常指向 Python 3.x 版本(Python 3.9, 3.11 等)。
    • 为什么存在:Python 3 是目前的主流版本,修复了 Python 2 的一些设计缺陷,并且拥有更现代的语法和强大的库生态系统。所有新项目都应该使用 python3
  • python

    树莓派为何同时有Python和Python3?-图2
    (图片来源网络,侵删)
    • 指向什么:这个命令是一个“兼容性符号”或“软链接”,它的作用是为了兼容那些为旧版 Python 2 编写的脚本,在大多数现代树莓派系统中,python 命令通常会指向 python3
    • 为什么存在:在 Python 2 到 Python 3 的过渡时期,大量的脚本和教程都是基于 Python 2 的,为了确保这些旧代码(python my_old_script.py)仍然可以运行,系统保留了 python 这个命令,并让它指向当前默认的 Python 3 解释器,这是一种向后兼容的策略。

如何验证它们指向的版本?

你可以在终端里输入以下命令来查看:

# 查看 python3 的版本
$ python3 --version
Python 3.9.2
# 查看 python 的版本(它通常会显示和 python3 一样的版本)
$ python --version
Python 3.9.2

你还可以用 ls -al 命令来查看 /usr/bin/ 目录下的链接关系,这会让你看得更清楚:

$ ls -al /usr/bin/python*
lrwxrwxrwx 1 root root    9 Nov 12 10:30 /usr/bin/python -> python3
lrwxrwxrwx 1 root root    9 Nov 12 10:30 /usr/bin/python3 -> python3.9

从上面的输出可以看到:

  1. python 是一个链接,它指向 python3
  2. python3 也是一个链接,它最终指向了具体的解释器文件 python3.9

这对我有什么影响?我该用哪个?

这是一个关键问题,直接影响你如何运行代码。

树莓派为何同时有Python和Python3?-图3
(图片来源网络,侵删)

你运行一个现有的脚本

假设你有一个脚本文件 my_script.py

  • 如果你直接运行 python my_script.py

    • 在现代树莓派上,这和 python3 my_script.py 效果完全一样,因为 python 指向了 python3
    • 如果你的系统非常老旧(比如早期基于 Debian Wheezy 的系统),python 可能会指向 Python 2,这时就会用 Python 2 来运行。
  • 最佳实践为了确保脚本在任何环境下都能用正确版本运行,请始终在脚本的第一行(Shebang 行)指定解释器。

    #!/usr/bin/env python3
    print("Hello, Raspberry Pi!")

    这样,无论用户是输入 python my_script.py 还是 ./my_script.py(只要文件有执行权限),系统都会明确地使用 python3 来执行。

你安装新的 Python 包(库)

这是最需要注意的地方!如果你用错了命令,会导致包安装位置混乱,引发各种奇怪的错误。

  • 要为 Python 3 安装包,必须使用 pip3

    # 正确!
    pip3 install numpy
    pip3 install requests
  • 不要使用 pip

    # 错误或容易混淆!
    pip install numpy 

    在很多系统中,pip 本身也可能是一个指向 pip3 的链接,但这并不总是 guaranteed,为了清晰和避免问题,养成始终使用 pip3 的习惯


总结与最佳实践

命令 作用 推荐用法
python3 运行现代 Python (3.x) 代码 所有新项目的首选
python 兼容旧脚本,通常也指向 python3 仅在运行没有 Shebang 行的旧脚本时可能用到。不推荐主动使用
pip3 为 Python 3 安装第三方库 安装所有 Python 包的标准做法
pip 可能指向 pip3,也可能指向旧的 pip (for Python 2) 避免使用,以防万一。

给你的最终建议:

  1. 写代码:始终用 python3 your_script.py 来运行你的脚本。
  2. 装库:始终用 pip3 install <library_name> 来安装库。
  3. 写脚本:在你的 Python 脚件第一行加上 #!/usr/bin/env python3,这是最专业、最可靠的做法。

遵循这个简单的规则,你就可以在树莓派上轻松管理你的 Python 环境,避免绝大多数与版本相关的麻烦。

分享:
扫描分享到社交APP
上一篇
下一篇