2009-05-09 17 views
1

私はLeopardのデフォルトのPythonインストールを使用する以上にPython 2.6を使用しています。そのため、Pythonのメインインストールとして設定しています。しかし、私はPyObjCプログラムのためにデフォルトのPythonを使っています。 Python 2.6の代わりにそれを使用するよう指定する方法はありますか?PyObjCプログラムで実行するPythonインストールを選択するにはどうすればよいですか?

答えて

3

最後に、この1つを自分で考え出しました。これの鍵は/Library/Frameworks/Python.frameworkの代わりに/System/Library/Frameworks/Python.frameworkとの最終実行可能ファイルを作ることです。

2

のようなものは、コマンドラインでPythonインタプリタへのフルパスを指定してみてください:あなたは、あなたのスクリプト(最初の行)の先頭にシェバングを追加することができます

/foo/bar/python2.6 script.py 
/baz/python objcscript.py 

#! /foo/bar/python2.6 script.py 

環境変数PYTHONPATHが設定されている場合は、設定を解除するか変更する必要があります。

+1

PyObjCはPythonインタプリタをobjective-cプログラムに埋め込んでいるので、ソースファイルを直接実行していません。したがって、私はshebang行を使用することはできませんし、コマンドラインでpython実行可能ファイルへのフルパスを指定することはできません。 –

2

AFAIRが、これは(main.mで)私を助け:また

NSArray *pythonPathArray = [NSArray arrayWithObjects: resourcePath, [resourcePath stringByAppendingPathComponent:@"PyObjC"], @"/System/Library/Frameworks/Python.framework/Versions/Current/Extras/lib/python/", @"/Library/Python/2.5/site-packages", nil]; 

を、ていることを確認し、使用したいPythonのインストール(main.m)この時点:

Py_SetProgramName("/usr/bin/python"); 
+0

これは本当に非常に役に立ちます。しかし、これは実際に正しいライブラリにリンクする問題であるように見えるので、プログラムがこれらの関数を呼び出すまでには、既に間違ったPythonが使用されています。 –

関連する問題