这个问题困扰了我好几天。
我有两个文件,update_attributes!
和helpers.py
。
在launcher.py
我定义了函数helpers.py
,它打印了#34;你好"。
我想在hello()
hello()
这是我在launcher.py.
中写的:
launcher.py
但是当我运行它时,我明白了:
from helpers import hello
....
helpers.hello()
我该如何解决这个问题?
我尝试了两种方式:
from helpers import hello
ImportError: No module named helpers
和
from helpers import hello
hello()
但仍然是这个错误:
import helpers
helpers.hello()
我认为终端的CLASSPATH应该有问题。
these answers中突出显示的问题是一个问题,但最终解决了resetting the classpath。
答案 0 :(得分:7)
问题在于这一行:
helpers.hello()
替换为:
hello()
现在可行,因为您只从hello
模块导入了名称helpers
。您尚未导入名称helpers
本身。
所以你可以拥有这个:
from helpers import hello
hello()
或者你可以拥有:
import helpers
helpers.hello()
答案 1 :(得分:3)
我重置了CLASSPATH,它以某种方式工作正常。奇怪的问题。谢谢大家!
答案 2 :(得分:1)
python解释器找不到你的模块“帮助者”。
你使用什么操作系统?
当你在Unix / Linux或类似的情况下,并且你的文件在同一个目录中时,它应该可以工作。但我听说,例如在Windows上有麻烦。也许,必须设置搜索路径。
见这里: https://docs.python.org/2/tutorial/modules.html#the-module-search-path
编辑:迈克尔是对的,当你“从帮助者导入...”而不是模块是导入本身时,系统只知道你好!
只做
from helpers import hello
hello()
或者:
import helpers
helpers.hello()
仍然必须解决导入错误。为此,它将是有用的 了解你的系统和目录结构!在像Windows这样的系统上,可能需要相应地设置PYTHONPATH(参见上面的链接)。
答案 3 :(得分:1)
from helpers import hello
....
helpers.hello() ## You didn't import the helpers namespace.
您的问题是理解命名空间的问题。您没有导入帮助程序名称空间...这就是解释程序无法识别帮助程序的原因。我强烈建议你阅读命名空间,因为它们在python中非常有用。
Offical Python Namespace Document
看看上面的这些链接。
答案 4 :(得分:0)
无法评论,但这两个文件是否在同一个文件夹中?我会尝试:
from helpers.py import hello
答案 5 :(得分:0)
档案系统:
__init__.py
helpers.py <- 'hello' function
utils
__init__.py <- functions/classes
barfoo.py
main.py
在主...
from helpers import hello
hello()
import utils # which ever functions/classes defined in the __init__.py file.
from utils import * # adds barfoo the namespace or you could/should name directly.
答案 6 :(得分:0)
我遇到了同样的问题:ModuleNotFoundError:没有名为“ Module_Name”的模块。 就我而言,模块和我调用它的脚本都在同一目录中,但是,我的工作目录不正确。使用以下命令更改工作目录后,导入工作成功:
import os
os.chdir("C:\\Path\to\desired\directory")