最近、Mac OS X 10.5 Leopardのインストールを10.6 Snow Leopardにアップグレードしました。それに伴い、Pythonのアップグレードバージョン2.6.1(2.5.1の場合は代わりに)が付属しました。ターミナルでpython
と入力しても、まだ表示されます
Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04)
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
/usr/bin/
を調べたところ、Python 2.6を取得するには、python2.6
と入力する必要があります。
問題は次のとおりですpython
コマンドマップをPython 2.6にマップするにはどうすればよいですか
それは簡単です:
_defaults write com.Apple.versioner.python Version 2.6
_
Appleからの詳しい説明については、_man python
_を参照してください。
また、1つの落とし穴:コンピューターに付属しているPythonを実行していて、インストールした他のコンピューターではないことを確認してください。これを行うには、コマンドプロンプトで_which python
_と入力します。 _/usr/bin/python
_をポイントする必要があります。これは、Snow Leopardでのデフォルトが2.6(Leopardを使用していたときは2.5)であるため、これだけに言及しています。
更新
以下のコメントに対処するには:
これは人々が求めていることをしません。
私にとっては、OS X 10.8.2ではそれが可能です。 _defaults write com.Apple.versioner.python Version 2.6
_を実行した後、Pythonのデフォルトバージョンは確かに2.6です(同様に2.7に戻した後も同様です)。
これは、python
を直接実行する場合でも、_#!/usr/bin/env python
_で始まる実行可能スクリプトを使用する場合でも同じです。期待されるバージョンのPythonを取得します。
これは/System/Library/Frameworks/Python.framework/Versionsのシンボリックリンクを解決しません。現在のポイントは2.7を指し、これにより問題が発生する可能性があります(2.6のsys.pathにまだあるためです)。
実際、シンボリックリンクは修正されません。
ただし、print()
s _sys.path
_および(少なくとも私のデフォルト設定では)2.6ライブラリディレクトリがパスにあるという短いスクリプトを実行します。 2.7 dirはパスにnotではありません。パス上のCurrent
シンボリックリンクされたディレクトリも同様です。したがって、ほとんどのスクリプトでは問題になりません。
ただし、Current
シンボリックリンクが_easy_install
_またはpip
のいずれかで使用されている可能性があります(テストされていません)。それは問題を引き起こすでしょう。 Pythonバージョンを更新しても、シンボリックリンクが更新されないのはバグのようです。
Macポートの使用をお勧めします...
Pythonを並列で使用できるpython_selectというパッケージがあります。したがって、最初に mac ports をインストールします(まだインストールされていない場合)。
最初にpython_selectパッケージをインストールします:
Sudo port install python_select
これで、システムでどのpythonディストリビューションが使用可能であるか)を確認できます。次のコマンドを発行するだけです。
port select --list python (MacPorts 2.x)
python_select -l (MacPorts 1.x)
私の場合、少なくともpythonバージョンがSnow Leopardにデフォルトで付属しているバージョンを印刷しました:python26-Apple
。
port select --show python (MacPorts 2.x)
python_select -s (MacPorts 1.x)
現在選択されているバージョンを表示します。 python26-Apple
。つまり、このパッケージはMacでうまく動作します。その他のオプションの問題について
port select (MacPorts 2.x)
python_select -h (MacPorts 1.x)
ポートリポジトリで利用可能なpythonバージョンを検索できます:
port search python
これにより、利用可能なpythonの長いリストが作成されます。
必要なパッケージをインストールするには、たとえばpython 2.4実行:
Sudo port install python24
python_select -s
は、新しくインストールされたpythonも表示します。python 2.4の問題に切り替えるには:
Sudo port select --set python python24 (MacPorts 2.x)
Sudo python_select python24 (MacPorts 1.x)
このコマンドはシェル間で持続します。
Bashを使用していると仮定して、次のように入力します。
% type -a python
これにより、PATH内のすべての「Python」実行可能ファイル、エイリアス、Shellビルトイン(おそらくない)またはbash関数が表示されます。
これは、ここで何が起こっているかをよりよく識別するのに役立ちます。
目的のバージョンへのシンボリックリンクを作成したい。
cd /Library/Frameworks/Python.framework/Versions
Sudo rm Current
Sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current
これにより、現在のデフォルトのPythonバージョンへのポインタが削除され、2.6バージョンに設定されます。
理想的ではありませんが(IMO)、これによりpython
を探しているすべてのアプリが修正されました/usr/local/bin/
。
Sudo cp /usr/local/bin/python3 /usr/local/bin/python
もちろん、最新のPythonバージョンをインストールした後。