修复此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
包含以下行:
from foo.tasks import my_function
我不明白为什么python找不到./foo/tasks.py
--它就在那里。
如果我在Python shell中这样做,那么它可以工作:
python
>>> from foo.tasks import my_function
只有当我通过python ./programs/my_python_program.py
脚本调用它时,它才不起作用。
发布于 2010-02-24 20:47:47
Python不会将当前目录添加到sys.path
,而是脚本所在的目录。将/home/bodacydo/work/project
添加到sys.path
或$PYTHONPATH
。
发布于 2010-02-24 21:00:38
在foo目录中是否有一个名为__init__.py
的文件?如果不是,那么python不会将foo识别为python包。
有关更多信息,请参阅python教程中的section on packages。
发布于 2019-11-22 17:30:56
如果在使用已安装的版本时遇到此问题,请确保在packages
中包含您的模块
setup(name='Your program',
version='0.7.0',
description='Your desccription',
packages=['foo', 'foo.bar'], # add `foo.bar` here
https://stackoverflow.com/questions/2325923
复制相似问题