0

Snow Leopard の Python のデフォルト バージョンは 2.6 です。私は、Python Web サイトのインストーラーを使用して 3.2 にアップグレードすることにしました。このインストーラーは、32 ビット バージョンと 64 ビット バージョンの両方の Python をインストールしました (一部のライブラリでは便利です)。

問題は、3.2 のように記述された私の python スクリプトが 2.6 として解釈されるのに対して、私の python シェルが 3.2 として解釈されることです。

だから私はこれを言うスクリプトを持っています:

#!/usr/bin/python
import sys
print(sys.version)#note the python 3 syntax

実行すると、次のようになります。

$ ./test.py 
2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)]

Pythonプロンプトで同じことを実行すると、次のようになります。

$python
Python 3.2.3 (v3.2.3:3d0686d90f55, Apr 10 2012, 11:25:50) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.2.3 (v3.2.3:3d0686d90f55, Apr 10 2012, 11:25:50) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
>>> 

問題は、これをどのように修正するかです。インストールの問題だと思います。名前をより便利にするために編集されました。

4

4 に答える 4

1

明確化で書いたことによると、 .bash_profile の最後に定義されているエイリアスがあります。

alias python=python3.2

これが犯人です。ドロップすることを検討してください。そうすれば、より透明で直感的な状況が得られます。

「どのpython」(/usr/bin/whichだと思います)は、エイリアスを認識していないため、認識された謎を解決しませんでした。パスで python バイナリのみが検出されます。

于 2012-11-12T11:07:25.170 に答える
1

コマンド ラインで、結果を入力which pythonして報告します。あなたのパスは何らかの理由で Python 3.3 を見つけているに違いありません/usr/bin/python。それらが異なる場合は#!/usr/bin/env python、スクリプトで を使用して、絶対パスの代わりにパス環境変数を使用して python を見つけます。

于 2012-10-28T18:52:41.427 に答える
0

パス (/usr/bin または /usr/local/bin) で何が優先されるかを理解することが重要です。「どの python」がターミナルで何を明らかにしますか? .bash_profile を編集して、新しい python バイナリへのパスを追加し、スクリプトの #!/usr/bin/python を変更して、新しい python を指すようにします (例: #!/usr/local/)。 bin/python - インストーラーが Python 3.x を配置した場所

于 2012-10-28T18:54:56.480 に答える
0

プロンプトで python を実行すると 3.2 python が表示されたにもかかわらず、スクリプトで python を実行すると 2.6 python が表示された理由はまだわかりません。私はそれを修正しました。python3 バイナリを見つけ、問題のある python バイナリの名前を/usr/bin. /usr/bin/python次に、からへのシンボリックリンクを作成しました/Library/Frameworks/Python.framework/Versions/3.2/bin/python3

元の問題が何であったかはまだ気になりますが、現在は修正されています。

于 2012-10-29T07:33:13.500 に答える