从另一个文件调用Python函数

Jac*_*hao 2 python python-import importerror

这个问题困扰了我好几天.

我有两个文件,helpers.pylauncher.py.

helpers.py我已经定义了函数hello(),它打印"你好".

我想打电话hello()launcher.py.

这就是我写的launcher.py:

from helpers import hello
....
helpers.hello()
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我得到了这个:

    from helpers import hello
ImportError: No module named helpers
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

编辑以回答答案/评论

  1. 我正在使用OS X和Python 3.4
  2. 这两个文件位于同一目录中
  3. 我尝试了两种方式:

    from helpers import hello
    hello()
    
    Run Code Online (Sandbox Code Playgroud)

    import helpers
    helpers.hello()
    
    Run Code Online (Sandbox Code Playgroud)

    但仍然是这个错误:

    import helpers
    ImportError: No module named 'helpers'
    
    Run Code Online (Sandbox Code Playgroud)

我认为终端的CLASSPATH应该有问题.

第二次编辑

这些 答案中突出显示的问题是一个问题,但最终重置了已解决的类路径.

Mic*_*zlo 7

问题出在这一行:

helpers.hello()
Run Code Online (Sandbox Code Playgroud)

替换为:

hello()
Run Code Online (Sandbox Code Playgroud)

现在它可以工作,因为您只hellohelpers模块中导入了名称.您尚未导入名称helpers本身.

所以你可以这样:

from helpers import hello
hello()
Run Code Online (Sandbox Code Playgroud)

或者你可以这样:

import helpers
helpers.hello()
Run Code Online (Sandbox Code Playgroud)

  • 虽然'from helpers import hello` /`helpers.hello()`组合确实不起作用,但这也不会导致`ImportError`. (4认同)