2

有区别吗?

我假设没有,因为本教程的第 2 章和我在 SO 和 Google 上的任何搜索都没有透露任何内容。

我对我的 python3 二进制文件和 python3.2 二进制文件进行了 md5 总和,它们是相同的。

出于好奇,我只是想知道它是否就像在只有 bash 兼容模式的系统上运行 sh 或类似的东西。

编辑:更清楚的是,这是使用 Mac OS X 安装程序从 python.org 安装的带有 Python 3 的 Mac OS X。它们不是符号链接,但实际上是两个独立的二进制文件。从提供的答案以及它们在其他系统上的符号链接方式告诉我,不,没有兼容模式或类似的东西,只需使用 python3。;) 谢谢。

4

2 回答 2

4

您没有指定您的操作系统,但在 Ubuntu(可能还有许多其他系统)上,将 python 和 pythonX 链接到 pythonX.Y 是正常的做法。在我的系统上,我安装了 2.7,所以 python 和 python2 链接到 python2.7。可能你有类似的东西。

我通常建议使用最不具体的名称,以保证您需要什么。如果您只需要任何特定版本的 python,请调用 python。如果您需要版本 3.X,则调用 python3。如果出于某种原因,您需要 python3.2,请调用它。尽可能不具体意味着随着新版本的出现而减少更新,并提高您的脚本可移植到可能没有安装您的特定版本的其他系统的机会。

于 2012-08-05T15:52:11.677 回答
1

一般来说,这取决于您的系统。在您的系统上,由于 md5sum 与 python3 和 python3.2 匹配,因此它们是相同的。

它们很可能是同一个二进制文件的符号链接。

以下是您可以进一步调查的方法:

% which python3
/usr/bin/python3
% which python3.2
/usr/bin/python3.2
% ls -l /usr/bin/python3 /usr/bin/python3.2 /usr/bin/python3.2mu
lrwxrwxrwx 1 root root       9 2011-10-05 16:53 /usr/bin/python3 -> python3.2
lrwxrwxrwx 1 root root      11 2011-09-05 19:04 /usr/bin/python3.2 -> python3.2mu
-rwxr-xr-x 1 root root 2852896 2011-09-05 19:04 /usr/bin/python3.2mu

在某些时候,如果您安装 Python3.3,安装程序可能会更改符号链接,以便 python3 指向 python3.3。

因此,您可以编写脚本来使用 python3:

#!/usr/bin/env python3

并且将使用最新版本的 Python3。

于 2012-08-05T15:47:06.280 回答