Python проблема с настройкой модуля - PullRequest
0 голосов
/ 06 августа 2020

Итак, у меня есть следующий сценарий python, который я называю DecisionCat.

import xml.etree.ElementTree as ET
import collections
from dataclasses import dataclass

def LoadStructure(filePath):
    tree = ET.parse(rulePath)
    root = tree.getroot()
    for RuleN in root.findall("Rule"):
        NewRule=Rule()
        RNumber=RuleN.attrib['RuleNumber']
        parameters={}
        for child in RuleN:
            if(child.tag == "Rule_Name"):
                RName=child.text
            if(child.tag == "Category"):
                RCat=child.text       
            if(child.tag == "Description"):
                RDesc=child.text
            if(child.tag=="Script_Object"):
                RPath=child.text
            if(child.tag == "Parameter_List"):
               PName=""
               PType=""             
               for Parameters in child:
                   if (Parameters.tag == "Parameter"):
                       for Params in Parameters:
                         if (Params.tag == "Parameter_Name"):
                            PName=Params.text
                         if (Params.tag == "Parameter_Type"):
                            PType=Params.text
                       parameters[PName]=PType                    
        NewRule.RuleName=RName
        NewRule.RuleCat=RCat
        NewRule.RuleDescription=RDesc
        NewRule.RulePath=RPath
        NewRule.Parameterlist=parameters
        catalog[RNumber]=NewRule

class Rule:
    RuleName: str
    RuleCat: str
    RuleDescription: str
    RulePath: str
    Parameterlist:{}

Я настроил структуру папок, состоящую из следующего:

DecisionCatalog (folder)
          with DecisionCat (folder)
              with __init__.py
                   DecisionCat.py

Вот мой тестовый скрипт.

import sys
import DecisionCatalog 

RNumber=""
RName=""
RCat=""
RDesc=""
RPath=""
catalog={}
rulePath="../DC_Extension_v6.xml"
LoadStructure(rulePath)

Я получаю следующее сообщение об ошибке:

Traceback (последний вызов последним): файл «TestCat2.py», строка 11, в LoadStructure ( rulePath) NameError: имя LoadStructure не определено

Кто-нибудь может помочь?

Ответы [ 2 ]

1 голос
/ 06 августа 2020

В тестовом скрипте попробуйте:

from DecisionCatalog.DecisionCat.DecisionCat import LoadStructure
0 голосов
/ 07 августа 2020

Оказывается, у меня был DecisionCat.py как DecisionCat..py. Мне действительно нужно было использовать DecisionCat.LoadStructure. Проблема с работой в одиночку может упустить очевидное.

...