在python中将函数从一个模块调用到另一个模块时出错
我已经用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)以确保在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
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