2

違いはありますか?

チュートリアルの第2章も、SOとGoogleでの検索でも何も明らかにされていないので、私は何も想定していません。

python3バイナリとpython3.2バイナリのmd5合計を実行しましたが、これらは同じです。

好奇心のために、互換モードでbashのみを使用するシステムでshを実行するようなものかどうかを知りたかっただけです。

編集:より明確にするために、これはMacOSXインストーラーを使用してpython.orgからPython3がインストールされたMacOSXです。これらはシンボリックリンクではありませんが、実際には2つの別個のバイナリです。提供された回答と、他のシステムでシンボリックリンクされている方法から、互換モードなどはなく、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 に答える