繁体   English   中英

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

[英]Applescript uses wrong python version, how to change?

我最近在OS X上的2.6.1上安装了python 2.6.5。除我尝试通过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"

有什么事吗 可以通过某种方式轻松解决此问题吗?

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

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

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

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

/usr/local/bin/python

然后在您的AppleScript代码中,您只能说

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

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

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

Mac默认安装将python放置在/ usr / bin中 ,python安装程序将其放置在带有符号链接的框架中/ usr / local / bin中 只需删除/ usr / bin中的旧版本并创建新的符号链接

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM