it-swarm-ja.com

Snow LeopardのデフォルトのPythonバージョンを変更するにはどうすればよいですか?

最近、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にマップするにはどうすればよいですか

27
SBSTN

それは簡単です:

_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バージョンを更新しても、シンボリックリンクが更新されないのはバグのようです。

21
Nate

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)

このコマンドはシェル間で持続します。

12
ovanes

Bashを使用していると仮定して、次のように入力します。

% type -a python

これにより、PATH内のすべての「Python」実行可能ファイル、エイリアス、Shellビルトイン(おそらくない)またはbash関数が表示されます。

これは、ここで何が起こっているかをよりよく識別するのに役立ちます。

5
Doug Harris

目的のバージョンへのシンボリックリンクを作成したい。

cd /Library/Frameworks/Python.framework/Versions 
Sudo rm Current 
Sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current

これにより、現在のデフォルトのPythonバージョンへのポインタが削除され、2.6バージョンに設定されます。

3
curious

理想的ではありませんが(IMO)、これによりpythonを探しているすべてのアプリが修正されました/usr/local/bin/

Sudo cp /usr/local/bin/python3 /usr/local/bin/python

もちろん、最新のPythonバージョンをインストールした後。

0
AGDM