2013-08-12 3 views
0

Я определил класс под названием Parser в файле с именем parser.py, который анализирует результат теста ....глобальное имя «класс» не определен - Python

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 

parser.py находится в том же каталоге, dbconn.py и main.py. Dbconn() работает без проблем, но я не понимаю, почему Parser() тоже не может работать ...

ответ

3

Parser - это существующий python module. Используйте другое имя файла (не parser.py) или вставьте свой путь в sys.path перед stdlib.

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

изменение имени файла будет делать? – cybertextron

+0

@philippe да, он должен. если он не имеет имени с другим модулем python. – sihrc

Смежные вопросы