2010-08-02 68 views
41

我想添加到Python路徑中的Mac OS X

import sys 
sys.path.append("/home/me/mydir") 

被追加一個目錄到我的PYTHONPATH

如果我打印的sys.path我dir是在那裏。

然後我打開一個新的命令,它不存在了。

但不知何故Python不能導入我保存在該目錄中的模塊。

我在做什麼錯?

我讀.profile或.bash_profile會做的伎倆。

我必須補充:

PATH="/Me//Documents/mydir:$PYTHONPATH" 
export PATH 

要使它發揮作用?

回答

56

sys.path的修改只適用於該Python解釋器的生命。如果你想這樣做永久您需要修改PYTHONPATH環境變量:

PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH" 
export PYTHONPATH 

注意PATH是可執行文件系統路徑,這是完全不同的。

**你可以寫在上面~/.bash_profile,它使用源source ~/.bash_profile

+3

非常感謝(忘記了)。我在哪裏放?在.bash_profile中的.profile中? MacPython上?: #設置PATH爲MacPython上2.6 #前原單版本保存在.bash_profile.pysave PATH = 「/庫/框架/ Python.framework /版本/ 2.6/bin中:$ {PATH}」 出口路徑 或之後? 命令是否重要? – MacPython 2010-08-02 12:31:57

+1

'.bash_profile'。如果你已經擁有'.bash_profile',我相信bash會忽略'.profile'。順序在這裏並不重要,因爲它們是兩個不同的環境變量。 – 2010-08-02 12:36:14

+0

@Felix,注意他所處理的MacPython代碼處理了PATH(系統路徑),一個單獨的變量。 – 2010-08-02 12:37:37

6

不知道爲什麼馬修的解決方案,我沒有工作(可能是我使用OSX10.8或許事做與macports)。但是,我添加了以下到文件的結尾處~/.profile

export PYTHONPATH=/path/to/dir:$PYTHONPATH 

現在我的目錄是在PYTHONPATH -

my-macbook:~ aidan$ python 
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', '/path/to/dir', ... 

,我可以從目錄中導入模塊。

+0

在Mac Osx終端上,如果我只是簡單地編寫python,那麼它將使用python 2.7,如果我編寫python3.6,那麼它會打開3.6版本。有什麼我可以做點python到python3.6 – 2017-03-12 17:55:39

1

Mathew的答案適用於終端python shell,但在我的情況下,它並不適用於IDLE shell,因爲在我用Python2.7.7替換它們之前,存在很多python版本。 我如何解決IDLE的問題。

  1. 在終端,cd /Applications/Python\ 2.7/IDLE.app/Contents/Resources/
  2. 然後sudo nano idlemain.py,如果需要輸入密碼。
  3. os.chdir(os.path.expanduser('~/Documents'))此行之後,我加入sys.path.append("/Users/admin/Downloads....")注:爲與添加
  4. Python模塊保存更改目錄,CTRL引號的替換內容+ x和輸入 現在開放空閒並嘗試進口python模塊,對我來說沒有錯誤!
2

設置$ PYTHONPATH環境變量似乎不影響Mac上的Spyder IDE的iPython終端。但是,Spyder的應用程序菜單包含一個「PYTHONPATH管理器」。在此添加我的路徑解決了我的問題。「PYTHONPATH管理器」在應用程序重啓時也是持久的。

這是特定於Mac的,因爲在Windows PC上設置PYTHONPATH環境變量會在Spyder中不使用PYTHONPATH管理器的情況下提供預期行爲(可找到模塊)。

相關問題