解决此ImportError错误的正确方法是什么?
我有以下目录结构:
/home/bodacydo /home/bodacydo/work /home/bodacydo/work/project /home/bodacydo/work/project/programs /home/bodacydo/work/project/foo
我在目录中
/home/bodacydo/work/project
现在,如果我输入
python ./programs/my_python_program.py
我立刻得到
ImportError: No module named foo.tasks
将./programs/my_python_program.py包含以下行:
./programs/my_python_program.py
from foo.tasks import my_function
我不明白为什么python找不到./foo/tasks.py-它在那里。
./foo/tasks.py
如果我从Python外壳程序执行此操作,那么它将起作用:
python >>> from foo.tasks import my_function
只有通过python ./programs/my_python_program.py脚本调用它才行。
Python不会将当前目录添加到sys.path,而是将脚本所在的目录添加/home/bodacydo/work/project到。添加到sys.path或$PYTHONPATH。
sys.path
$PYTHONPATH