2009-09-19 46 views
2

我正在運行Mac OS X 10.5.8。我已經從該網站安裝了Python 2.6。它位於我的應用程序目錄中。我已經編輯我的.bash_profile文件有:IDLE和Python在Mac OS X中有不同的路徑

# Setting PATH for MacPython 2.6 
# The orginal version is saved in .bash_profile.pysave 
PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}" 
export PATH 
export PATH=/usr/local/mysql/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 
export PYTHONPATH=/Users/blwatson/pythonpath:/Users/blwatson/pythonpath/django/bin:$PYTHONPATH 

當我運行從命令提示符蟒蛇,我可以得到如下:

Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) 
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
>>> django.VERSION 
(1, 0, 4, 'alpha', 0) 

檢查PATH

>>> import sys 
>>> sys.path 
['', '/Users/blwatson/pythonpath', '/Users/blwatson/pythonpath/django/bin', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/wx-2.8-mac-unicode'] 
>>> 

當我在IDLE中,我獲得了不同的體驗。

Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) 
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin 
Type "copyright", "credits" or "license()" for more information. 

    **************************************************************** 
    Personal firewall software may warn about the connection IDLE 
    makes to its subprocess using this computer's internal loopback 
    interface. This connection is not visible on any external 
    interface and no data is sent to or received from the Internet. 
    **************************************************************** 

IDLE 2.6.2  
>>> import django 

Traceback (most recent call last): 
    File "<pyshell#0>", line 1, in <module> 
    import django 
ImportError: No module named django 
>>> import sys 
>>> print sys.path 
['/Users/blwatson/Documents', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/wx-2.8-mac-unicode'] 

我不知道發生了什麼事。我從一臺筆記本電腦搬到另一臺筆記本電腦上,做了整個TimeCapsule的事情,所以我知道有一些衝突是因爲這個。 IDLE從哪裏獲得PATH?爲什麼我不能導入Django?

+0

不僅如此,但你會注意到BBEdit和Komodo Edit會有類似的問題。 – 2009-09-19 12:48:58

回答

2

與所有OS X應用程序捆綁包一樣,如果通過雙擊啓動IDLE.app,則不涉及shell,因此。 bash_profile或其他shell初始化文件不被調用。有一種方法可以通過使用特殊的property list file~/.MacOSX/environment.plist)來設置用戶會話環境變量,但它確實有點混亂,不推薦。

幸運的是,有一個更簡單的解決方案:在OS X上,還可以在終端窗口中從shell命令行調用IDLE。通過這種方式,它將像您期望的那樣從該shell繼承導出的環境變量。因此,像:

$ export PYTHONPATH= ... 
$ /usr/local/bin/idle2.6 

取決於它是如何調用,所以我建議使用無非是python.org年長之前2.6.2有在OS X上的各種矛盾和問題,IDLE 2.6.2或3.1版本在OS X上。

編輯:我從open(1)手冊頁看到,從10.4開始,通過open啓動的應用程序也繼承了環境變量,因此也可以從命令行使用。如果你想避免打開一個終端窗口,使用AppleScript或Automator(或甚至py2app!)創建一個簡單的啓動程序很容易。在這種情況下,請使用open命令,以便啓動程序不會坐在旁邊。例如,在Automator,選擇Run Shell Script行動,並添加:

export PYTHONPATH= ... 
open -a "/Applications/Python 2.6/IDLE.app" 

保存爲文件格式Application(10.5),你應該有推出定製IDLE一個可點擊的方式。

+0

從命令行運行。這很煩人,我不得不推出終端,但這會做...非常感謝! – 2009-09-19 08:50:34