[英]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
(或perl
或ruby
)副本是非常習慣的。 然后在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.