添加到pythonpathmac os x
我想
import sys sys.path.append("/home/me/mydir")
在我的pythonpath中添加一个dir
如果我打印sys.path我的目录在那里。
然后我打开一个新的命令,现在不在了。
但不知何故,Python不能导入我保存在该目录中的模块。
我究竟做错了什么?
我读.profile或.bash_profile会做的伎俩。
我必须添加:
PATH="/Me//Documents/mydir:$PYTHONPATH" export PATH
为了使它工作?
对sys.path
修改只适用于Python解释器的生命周期。 如果你想永久地执行它,你需要修改PYTHONPATH
环境variables:
PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH" export PYTHONPATH
请注意, PATH
是可执行文件的系统path,它是完全独立的。
**你可以在~/.bash_profile
和源代码中使用source ~/.bash_profile
不知道为什么马修的解决scheme不适合我(可能是因为我使用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', ...
我可以从该目录导入模块。
设置$ PYTHONPATH环境variables似乎不影响Mac上的Spyder IDE的iPythonterminal。 但是,Spyder的应用程序菜单包含一个“PYTHONPATHpipe理器”。 在这里添加我的path解决了我的问题 “PYTHONPATHpipe理器”在应用程序重新启动时也是持久的。
这是特定于Mac的,因为在我的Windows PC上设置PYTHONPATH环境variables会在Spyder中不使用PYTHONPATHpipe理器的情况下提供预期的行为(可以find模块)。
Mathew的答案适用于terminal的python shell,但是在我的情况下,它并不适用于IDLE shell,因为python的许多版本在我用Python2.7.7replace之前就已经存在了。 我如何解决与IDLE的问题。
- 在terminal中,
cd /Applications/Python\ 2.7/IDLE.app/Contents/Resources/
- 然后
sudo nano idlemain.py
,如果需要input密码。 - 在
os.chdir(os.path.expanduser('~/Documents'))
这一行之后,我添加了sys.path.append("/Users/admin/Downloads....")
注意:用引号replace内容要添加python模块的目录 - 保存更改,按Ctrl + X并进入现在打开空闲,并尝试导入python模块,对我来说没有错误!