Applescript使用错误的python版本,如何更改?

时间:2010-06-18 10:48:12

标签: python macos version applescript

我最近在OS X上安装了python 2.6.5 over 2.6.1。除非我尝试通过Applescript编辑器执行python脚本,否则一切正常。如果我执行以下行,我会得到版本2.6.1:

AppleScript的:

do shell script "python -c \"from sys import version; print version\""

但是如果我在OS X终端中执行类似的行,我会得到版本2.6.5:

OS X终端:

python -c "from sys import version; print version"

可能有什么不对?这可以以某种方式轻松修复吗?

3 个答案:

答案 0 :(得分:1)

我不建议覆盖系统安装的python(或任何UNIX命令),因为某些系统应用程序可能依赖于安装的python特定版本的怪癖。

如今,以完全不同的路径安装python(或perlruby)的另一个不同副本是非常习惯的。 然后在bash的情况下在.profile等中适当地设置路径,以便在您安装的命令行python中进行选择。

但请注意,GUI应用程序从系统继承环境变量,不读取.profile或其他内容。有一种方法可以更改GUI应用程序看到的PATH环境变量(请参阅here),但我不建议这样做。

您在哪里安装了python 2.6.5?说它在

/usr/local/bin/python

然后在您的AppleScript代码中,您可以说

do shell script "/usr/local/bin/python  -c ... ." 

答案 1 :(得分:0)

Python 2.6.5安装程序修改了您的~/.bash_profile文件,将Python 2.6.5的bin目录放在$PATH的开头,/usr/bin之前,do shell script操作系统的默认Python解释器所在。通过终端登录时会自动读取该配置文件,但使用python时则不会。您需要指定所需的do shell script可执行文件的完整路径(可能是最佳选项),或者您可以让脚本事先读取bash配置文件(但请注意sh使用{{1 }},而不是bash):

do shell script ". ${HOME}/.bash_profile; python -c 'import sys; print(sys.version)'"

答案 2 :(得分:0)

mac默认安装将python放在 / usr / bin 中,python安装程序将它放在带有 / usr / local / bin 中的sym链接的框架中。只需删除 / usr / bin 中的旧版本并创建新的sym链接

即可
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python /usr/bin/python