【问题标题】:Module is imported but its functions can't be called模块已导入,但无法调用其功能
【发布时间】:2018-03-11 17:34:06
【问题描述】:

根据几个来源的建议,我有一个模块存储在 site-packages 目录中。我可以从该目录导入通过 pip 安装的其他软件包。这是一个使用 Python 3.6.3 的最小测试用例。

MyStuff 模块:

def Dummy()
    return(0)

测试程序:

try:
   import MyStuff
except:
   print('Import Failed')    

print(MyStuff)
print(dir(MyStuff))

result = Dummy()
print(result)

我以管理员身份使用 Windows 10 命令提示符运行 TEST PROGRAM 并得到此结果。(添加空行以提高可读性。)

C:>python K:\PythonProjects\TestDummy.py

\Python\Python36-32\lib\site-packages\MyStuff.py'>

['Dummy', 'builtins', 'cached', 'doc', 'file ', 'loader', >'name', 'package', 'spec']

Traceback(最近一次调用最后一次): 文件“K:\PythonProjects\TestDummy.py”,第 9 行,在模块中

结果 = Dummy()

NameError: name 'Dummy' 未定义

【问题讨论】:

    标签: python-3.x module


    【解决方案1】:

    是的,Dummy 未定义。但是,MyStuff.Dummy 是。

    这是dir(MyStuff) 告诉您的:名称Dummy 是在MyStuff 模块内部定义的。如果您希望此名称在全局范围内可见,请使用 from MyStuff import *

    【讨论】:

      【解决方案2】:

      你不应该使用 Module.function() 吗?

      【讨论】:

        猜你喜欢
        • 2018-04-23
        • 1970-01-01
        • 2021-02-26
        • 2019-05-02
        • 1970-01-01
        • 2018-02-03
        • 1970-01-01
        • 1970-01-01
        • 2015-04-10
        相关资源
        最近更新 更多