0

Snow Leopard 上的默认 python 版本是 2.6。我决定使用 python 网站上的安装程序升级到 3.2,该安装程序安装了 32 位和 64 位版本的 python(对某些库很有用。)

问题是我写的像 3.2 的 python 脚本解释为 2.6,而我的 python shell 解释为 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

在命令行中,键入which python并报告结果。我敢打赌你的路径是出于某种原因找到 Python 3.3,它与/usr/bin/python. 如果它们不同,#!/usr/bin/env python请在脚本中使用路径环境变量而不是绝对路径来查找 python。

于 2012-10-28T18:52:41.427 回答
1

根据您在说明中所写的内容,在您的 .bash_profile 末尾定义了一个别名:

alias python=python3.2

这是罪魁祸首。考虑放弃它,你会有一个更透明和直观的情况。

“which python”(我假设它是 /usr/bin/which)并没有解决您所感知的谜团,因为它不知道别名。它只会在你的路径中找到一个 python 二进制文件。

于 2012-11-12T11:07:25.170 回答
0

重要的是要了解路径中的优先级(/usr/bin 或 /usr/local/bin),“which python”在终端中显示什么?您需要编辑 .bash_profile 并添加新 python 二进制文件的路径,并更改脚本中的 #!/usr/bin/python 以指向新 python,例如 #!/usr/local/ bin/python - 安装程序放置 Python 3.x 的任何位置

于 2012-10-28T18:54:56.480 回答
0

我仍然不知道为什么在脚本中运行 python 给了我 2.6 python,即使在提示符下运行 python 给了我 3.2 python。我确实修好了。我找到了 python3 二进制文件,并在我的/usr/bin. 然后我做了一个符号链接/usr/bin/python/Library/Frameworks/Python.framework/Versions/3.2/bin/python3

我仍然很好奇原来的问题是什么,但现在已经解决了。

于 2012-10-29T07:33:13.500 回答