首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何修复"ImportError: No module named...“Python中的错误?

如何修复"ImportError: No module named...“Python中的错误?
EN

Stack Overflow用户
提问于 2010-02-24 20:31:09
回答 3查看 528K关注 0票数 126

修复此ImportError错误的正确方法是什么?

我有以下目录结构:

代码语言:javascript
复制
/home/bodacydo
/home/bodacydo/work
/home/bodacydo/work/project
/home/bodacydo/work/project/programs
/home/bodacydo/work/project/foo

我在目录里

代码语言:javascript
复制
/home/bodacydo/work/project

现在如果我输入

代码语言:javascript
复制
python ./programs/my_python_program.py

我马上就会得到

代码语言:javascript
复制
ImportError: No module named foo.tasks

./programs/my_python_program.py包含以下行:

代码语言:javascript
复制
from foo.tasks import my_function

我不明白为什么python找不到./foo/tasks.py --它就在那里。

如果我在Python shell中这样做,那么它可以工作:

代码语言:javascript
复制
python
>>> from foo.tasks import my_function

只有当我通过python ./programs/my_python_program.py脚本调用它时,它才不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-24 20:47:47

Python不会将当前目录添加到sys.path,而是脚本所在的目录。将/home/bodacydo/work/project添加到sys.path$PYTHONPATH

票数 133
EN

Stack Overflow用户

发布于 2010-02-24 21:00:38

在foo目录中是否有一个名为__init__.py的文件?如果不是,那么python不会将foo识别为python包。

有关更多信息,请参阅python教程中的section on packages

票数 36
EN

Stack Overflow用户

发布于 2019-11-22 17:30:56

如果在使用已安装的版本时遇到此问题,请确保在packages中包含您的模块

代码语言:javascript
复制
setup(name='Your program',
    version='0.7.0',
    description='Your desccription',
    packages=['foo', 'foo.bar'], # add `foo.bar` here
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2325923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档