我想
import sys
sys.path.append("/home/me/mydir")
将一个dir附加到我的pythonpath
如果我打印sys.path,我的目录就在那里。
然后我打开一个新命令,它就不存在了。
但不知何故,Python无法导入我在该目录中保存的模块。
我做错了什么?
我读.profile或.bash_profile会做的。
我必须添加:
PATH="/Me//Documents/mydir:$PYTHONPATH"
export PATH
要使其有效吗?
答案 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解决问题的。
cd /Applications/Python\ 2.7/IDLE.app/Contents/Resources/
sudo nano idlemain.py
,如果需要,请输入密码。os.chdir(os.path.expanduser('~/Documents'))
这一行之后,我添加了sys.path.append("/Users/admin/Downloads....")
注意:将引号的内容替换为要添加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