Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将函数从一个模块调用到另一个模块时出错_Python_Python 2.7 - Fatal编程技术网

在python中将函数从一个模块调用到另一个模块时出错

在python中将函数从一个模块调用到另一个模块时出错,python,python-2.7,Python,Python 2.7,我已经用python“Sample.py”和“GenericFunctions.py”从“Sample.py”中编写了两个模块,我正在调用一个函数 出现在“genericfonments.py”中,但我无法将该函数调用为“AttributeError:'module'对象没有属性'fn_ElseLog'” Sample.py中的代码: GenericFunctions.py中的代码: 你们能给我一个解决办法吗 在“GenericFunctions.py”中出现,但我不能称之为 函数获取错误为“A

我已经用python“Sample.py”和“GenericFunctions.py”从“Sample.py”中编写了两个模块,我正在调用一个函数

出现在“genericfonments.py”中,但我无法将该函数调用为“AttributeError:'module'对象没有属性'fn_ElseLog'”

Sample.py中的代码: GenericFunctions.py中的代码: 你们能给我一个解决办法吗

在“GenericFunctions.py”中出现,但我不能称之为 函数获取错误为“AttributeError:“module”对象已 没有属性“fn_ElseLog”

如前所述,您的代码看起来是正确的

检查以确保两个文件位于同一目录中,然后重新启动python或重新加载(GenericFunctions)以确保
sys.modules
缓存中没有过期版本。

尝试:

  • 删除目录中的所有
    pyc
    文件。(以确保它不在缓存中)
  • Sample.py
    中的
    print(dir(GenericFunctions))
    print(GenericFunctions.\uuuuuu文件)
    ,查看您是否正在导入您认为正在导入的文件
  • 查看
    PYTHONPATH
    (echo$PYTHONPATH)上是否有其他名为
    genericsfunctions
    的文件
    他们在同一个目录下吗?@samrap如何知道他们是否在同一个目录下@RickeyA正如你所建议的,我在输出中尝试了打印(GenericFunctions.\uuuuu file\uuuuuu),它正在打印两个与“C:\workspace\sample\GenericFunctions.pyc:\workspace\sample\GenericFunctions.pyc”同名的文件那么我现在要做的是,我的工作区中有两个文件,一个是编译好的python文件,另一个是python文件……这样有两个文件正确吗???@somesh:是的,.py保存你的代码,当你运行这个文件时,.pyc文件是由保存中间字节码的解释器创建的。您可以删除.pyc文件,看看这是否解决了您的问题。@somesh:奇怪的是文件名被打印了两次。您是否将sample.py包含在另一个模块中?是的…我将sample.py包含在GenericFunctions.py中。它是否正确??
    import GenericFunctions
    
    def sampleee():
        g_TCaseID="SD1233"
        g_TCDescription="Login"
        g_TestData="hi"
        g_Result="Fail"
    
        g_Remarks="testing"
        g_TargetEnvironment="S1"
        g_TargetSystem="Legacy"
        g_TargetRegion="EU"
        x = GenericFunctions.fn_ElseLog(g_TCaseID, g_TCDescription, g_TestData, g_Result, g_Remarks)
    
    
    sampleee()
    
    def fn_ElseLog(g_TCaseID, g_TCDescription, g_TestData, g_Result, g_Remarks):
    
        print "entered in ElseLog Function"
        Output= fn_Output(g_TCaseID, g_TCDescription, g_TestData, g_Result , g_Remarks)
        print ("Testcase"+"'"+g_TCDescription+"'"+"execution completed"+"'"+g_TargetEnvironment+"-"+g_TargetRegion)
    
    def fn_Output(p_TCaseID, p_TCDescription, p_TestData, p_Result , p_Remarks):
        OutputSheet=""
        OutputSheet="\Test"+"_"+g_TargetEnvironment+"_"+g_TargetSystem+"_"+g_TargetRegion+".xlsx" 
        OutputPath=r"C:\Users\u304080\Desktop\PlayAround\Shakedowns\OutputResultFiles"
    
        #objExcel1 = win32.gencache.EnsureDispatch('Excel.Application')
        Outputfile=os.path.exists(OutputPath+OutputSheet)
    
        if Outputfile==True :
           print('Output file is present')
        else:
           print('Output file is not present')
           return
    
        objExceloutput = win32.gencache.EnsureDispatch('Excel.Application')
         #excel.DisplayAlerts = False
        objoutputworkbook = objExceloutput.Workbooks.Open(OutputPath+OutputSheet)
        objSheetOutput = objoutputworkbook.Sheets(1)
        OutputRowCount =objSheetOutput.UsedRange.Rows.Count
        print "OutputRowcount" , OutputRowCount
        objSheetOutput.Cells(OutputRowCount+1,1).Value=p_TCaseID
        objSheetOutput.Cells(OutputRowCount+1,2).Value=p_TCDescription
        objSheetOutput.Cells(OutputRowCount+1,3).Value=p_TestData
        objSheetOutput.Cells(OutputRowCount+1,4).Value=p_Result
        objSheetOutput.Cells(OutputRowCount+1,4).Font.Bold = True
    
        if p_Result=="Pass":
           objSheetOutput.Cells(OutputRowCount+1,1).Font.ColorIndex = 10 
        else:
           objSheetOutput.Cells(OutputRowCount+1,1).Font.ColorIndex = 3
    
        objoutputworkbook.SaveAs(OutputPath)
        objSheetOutput=None
        objoutputworkbook=None
        objExceloutput.Quit()
        objExceloutput=None