名称错误:从另一个python fi调用函数时未定义全局名称

2024-10-01 04:55:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图调用存在于另一个python文件中的函数,并从当前正在运行的python文件中传递用户输入。我一直得到 错误:

"NameError: global name 'main1' is not defined."

这是我第一次用python写文章,也是第一次发布到stack overflow,所以请原谅我,但是我不确定在这篇文章中包括什么。我还在一个文件中使用Tkinter,另外两个文件使用pdf miner,我的python version 2.7(我知道过时了)。在

我尝试了重命名被调用的main函数,以避免与其他可能被调用文件中的函数混淆,创建了一个Init.py文件,因为我使用的是pycharm,以不同的方式导入.py文件,因此将其标记为源。在

from DearNeighbor import *
from NameOnPage import *
from Tkinter import *
from tkFileDialog import *
from functools import partial
import Tkinter as tk

DearNeighbor是包含main1的文件,NameOnPage是包含{}的文件。在

我要运行的函数:

^{pr2}$

正在传递的txt和{}文件是两个字符串,它们是要查看的文件的地址。在

亲爱的邻居的Main1:

def main1(textinput, pdfinput):
    start_time = time.time()
    global txt00
    global pdf00
    txt00 = textinput
    pdf00 = pdfinput
    pdf_dict = pdf_records_file()
    text_dict = records_in_text_file()
    different = set()
    count = 0
    for key in sorted(set(pdf_dict.keys()) & set(text_dict.keys())):
        pdf_value = [x.upper() for x in pdf_dict[key]]
        text_value = [x.upper() for x in text_dict[key]]
        if pdf_value == text_value:
            count += 1
            print()
            print(key, "from pdf file", pdf_dict[key], colored("MATCHED", 'green', attrs=['bold']), key, "from text file", text_dict[key])
            print()
        else:
            different.add(key)
            print(key, "from pdf file", pdf_dict[key], colored("DID NOT MATCH", 'red', attrs=['bold']), key, "from text file", text_dict[key])
            print()

    print()
    print("The number of records matched = ", colored(count, 'yellow',attrs=['bold']))
    print()
    print("Total time taken = ", colored(" %s seconds", 'yellow') % (time.time() - start_time))

打印的完整错误是:

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1536, in __call__
    return self.func(*args)
  File "/Users/will.rogers/Desktop/Python Scripts/ExecutableAutomation/venv/FrontEnd.py", line 69, in submit
    main1(txt0, pdf0)
NameError: global name 'main1' is not defined

基本上,在这个程序中,提交一堆按钮,直到用户界面出现错误为止。我希望这是足够的信息,谢谢!在


Tags: 文件key函数textinfromimportpdf
1条回答
网友
1楼 · 发布于 2024-10-01 04:55:33

谢谢你的评论!你们给我指出了正确的方向,我很感激。我在希望FrontEnd导入的类中导入了FrontEnd,这导致了一些问题。然后我得到了一个异常,它需要Unicode,我给了它'str'。我通过升级到python3.7解决了这个问题(技术上我不应该这么做,但是2.7给了我很多我无法抗拒的问题。特别感谢评论中的@mistermiagi,如果没有他的帮助,我是不会注意到的!在

相关问题 更多 >