【问题标题】:web2py Can't import run functions from imported moduleweb2py 无法从导入的模块导入运行函数
【发布时间】:2013-05-05 21:56:29
【问题描述】:

我正在尝试将外部模块导入到 web2py 应用程序的控制器代码中。我正在导入的模块位于 myapp/modules 中,并且似乎可以正常导入。但是,它不允许我调用其中定义的任何函数;给出以下错误 'module' 对象没有属性 'testfunc'

我是这样导入的:

import json_utils as u

然后这样调用:

u.testfunc()

我在这里遗漏了一些明显的东西吗?我已经尝试停止/启动服务器,以防它没有重新加载文件。

干杯

编辑:这是整个 json_utils.py 文件:

def testfunc():
    return 3

def testfunc2():
    # some stuff
    return 5

【问题讨论】:

    标签: python web2py


    【解决方案1】:

    问题是 web2py 缓存外部模块。停止/启动服务器是不够的,我需要杀死整个事情重新启动。

    【讨论】:

    • 我必须重新加载我的 Web 应用程序才能正常工作。对我来说很奇怪,但确实奏效了。
    【解决方案2】:

    json_utils模块没有内置函数testfunc()

    例如,如果我这样做

    import random
    u.nonfunction()
    

    然后我运行它我得到 AttributeError: 'module' object has no attribute 'nonfunction'

    但是如果我做一个它有的功能

    import random
    random = u.randrange(1,10)
    print(random)
    

    正常工作

    【讨论】:

    • 这不是我期望凭空提取随机函数的情况。函数在那里,只是它不会让我调用它们。
    【解决方案3】:

    据说json_utils没有testfunc函数

    【讨论】:

    • 但是在 json_utils 中有一个函数叫做那个。定义为:def testfunc(): return 5 我一直保持简单,因为这应该只是工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多