簡體   English   中英

在python中從一個模塊調用函數到另一個模塊時出錯

[英]Error while calling a function from one module to another module in python

我在“Sample.py”的python“Sample.py”和“GenericFunctions.py”中編寫了兩個模塊,我調用了一個函數

出現在“GenericFunctions.py”但我無法調用該函數獲取錯誤,因為“AttributeError:'module'對象沒有屬性'fn_ElseLog'”

Sample.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()

GenericFunctions.py中的代碼:

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   

你們能告訴我一個解決方案嗎?

出現在“GenericFunctions.py”但我無法調用該函數獲取錯誤,因為“AttributeError:'module'對象沒有屬性'fn_ElseLog'”

如上所示,您的代碼看起來正確。

檢查以確保兩個文件都在同一目錄中,然后重新啟動python或reload(GenericFunctions)以確保sys.modules緩存中沒有過時的版本。

嘗試:

  1. 刪除目錄中的所有pyc文件。 (以確保它不在緩存中)
  2. Sample.py print(dir(GenericFunctions)) print(GenericFunctions.__file__) print(dir(GenericFunctions))print(GenericFunctions.__file__) ,以查看是否要導入您認為要導入的文件。
  3. 看看你的PYTHONPATH (echo $ PYTHONPATH)上是否有其他名為GenericFunctions文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM