簡體   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