全球名称';类别';未定义-Python

全球名称';类别';未定义-Python,python,Python,我在一个名为Parser.py的文件中定义了一个名为Parser的类,用于解析测试结果 import sys import re class Parser: def __init__(self): pass def udp_parse(self, filename=""): # ... some code over here 现在,在main.py中。我有: from dbconn import * from parser import *

我在一个名为
Parser.py
的文件中定义了一个名为
Parser
的类,用于解析测试结果

import sys
import re

class Parser:

    def __init__(self):
        pass

    def udp_parse(self, filename=""):
       # ... some code over here
现在,在
main.py
中。我有:

from dbconn import *
from parser import *
import os
import subprocess

def main() 
    dbconn = Dbconn()
    parse = Parser()
    # more code here ...

if __name__ == '__main__':
    main()
我得到:

Traceback (most recent call last):
  File "iperf.py", line 108, in <module>
    main()
  File "iperf.py", line 49, in main
    parse = Parser()
NameError: global name 'Parser' is not defined
回溯(最近一次呼叫最后一次):
文件“iperf.py”,第108行,在
main()
文件“iperf.py”,第49行,主
parse=Parser()
NameError:未定义全局名称“Parser”
parser.py
dbconn.py
main.py
位于同一目录中
Dbconn()
可以正常工作,但我不明白为什么
Parser()
不能正常工作

解析器是现有的。使用其他文件名(不是parser.py)或在stdlibs之前的sys.path中插入路径

import sys
sys.path.insert(0,'parser/directory')
from parser import *
解析器是一个现有的。使用其他文件名(不是parser.py)或在stdlibs之前的sys.path中插入路径

import sys
sys.path.insert(0,'parser/directory')
from parser import *

更改文件名可以吗?@philippe是的,应该可以。只要它不与另一个python模块共享名称。更改文件名就可以了?@philippe是的,应该可以。只要它不与另一个python模块共享名称。