添加到python路径mac os x

时间:2010-08-02 12:23:58

标签: python macos add pythonpath

我想

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

将一个dir附加到我的pythonpath

如果我打印sys.path,我的目录就在那里。

然后我打开一个新命令,它就不存在了。

但不知何故,Python无法导入我在该目录中保存的模块。

我做错了什么?

我读.profile或.bash_profile会做的。

我必须添加:

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

要使其有效吗?

5 个答案:

答案 0 :(得分:64)

sys.path的修改仅适用于该Python解释器的生命周期。如果要永久执行此操作,则需要修改PYTHONPATH环境变量:

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

请注意,PATH是可执行文件的系统路径,它是完全独立的。

**您可以使用~/.bash_profile

source ~/.bash_profile及其来源中撰写以上内容

答案 1 :(得分: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', ...  

我可以从该目录导入模块。

答案 2 :(得分:2)

设置$ PYTHONPATH环境变量似乎不会影响Spyder IDE在Mac上的iPython终端。但是,Spyder的应用程序菜单包含一个" PYTHONPATH管理器。"在这里添加我的路径解决了我的问题" PYTHONPATH经理"在应用程序重启时也是持久的。

这是特定于Mac的,因为在我的Windows PC上设置PYTHONPATH环境变量会在不使用Spyder中的PYTHONPATH管理器的情况下提供预期的行为(找到模块)。

答案 3 :(得分: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....") 注意:将引号的内容替换为要添加python模块的目录
  4. 保存更改,ctrl + x并输入 现在打开空闲并尝试导入python模块,对我来说没有错误!!!

答案 4 :(得分:1)

在 MacOS Big Surf 上,要添加“导出”的文件是 $HOME/.zprofile

因此,这应该适用于将 PYTHONPATH 添加到您的 Mac Big Surf 环境变量:

export PYTHONPATH=$HOME/my_folder

如果文件不存在就在$HOME中创建它,通常是/Users/my_user_name

文件名的这一变化是因为 MacOS Big Surf 的默认 shell 是 zsh 而不是 bash