我正在使用Python构建一个基本的解析器应用程序。它监视一个文件夹,并在文件被放置在那里时导入它们。我有一个MongoDB,我正在尝试将导入保存到其中。这几乎没有什么难度。问题出现在当我尝试包含我的类/ mongo文档文件之一时。我确定这是我不理解的简单语法问题。我已经安装了所有要求,并在虚拟环境中运行此应用程序。但这是我的第一个Python应用程序,所以很可能是我没有看到的东西。
我的文件结构是:
这是application.py文件。
如果我在parser.py中不包括hl7message类,它就可以正常运行,但是一旦我包括它,我就会收到错误,所以我确定它与那个文件有关。 然而,错误消息并不是很有用。 我不知道我是否陷入了某种包含循环之类的问题。
抱歉,以下是堆栈跟踪信息。
我的文件结构是:
application.py
requirements.txt
__init__.py
-services
parser.py
__init__.py
-models
hl7message.py
__init__.py
这是application.py文件。
from mongoengine import connect
import os, os.path, time
from services import parser
db = connect('testdb')
dr = 'C:\\Imports\\Processed'
def processimports():
while True:
files = os.listdir(dr)
print(str(len(files)) + ' files found')
for f in files:
msg = open(dr + '\\' + f).read().replace('\n', '\r')
parser.parse_message(msg)
print('waiting')
time.sleep(10)
processimports()
requirements.txt
mongoengine
hl7
parser.py
import hl7
from models import hl7message
def parse_message(message):
m = hl7.parse(str(message))
h = hl7message()
hl7message.py
from utilities import common
from application import db
import mongoengine
class Hl7message(db.Document):
message_type = db.StringField(db_field="m_typ")
created = db.IntField(db_field="cr")
message = db.StringField(db_field="m")
如果我在parser.py中不包括hl7message类,它就可以正常运行,但是一旦我包括它,我就会收到错误,所以我确定它与那个文件有关。 然而,错误消息并不是很有用。 我不知道我是否陷入了某种包含循环之类的问题。
抱歉,以下是堆栈跟踪信息。
Traceback (most recent call last):
File "C:/OneDrive/Dev/3/Importer/application.py", line 3, in <module>
from services import parser
File "C:\OneDrive\Dev\3\Importer\services\parser.py", line 2, in <module>
from models import hl7message
File "C:\OneDrive\Dev\3\Importer\models\hl7message.py", line 2, in <module>
from application import db
File "C:\OneDrive\Dev\3\Importer\application.py", line 23, in <module>
processimports()
File "C:\OneDrive\Dev\3\Importer\application.py", line 17, in processimports
parser.parse_message(msg)
AttributeError: module 'services.parser' has no attribute 'parse_message'
__init__
文件吗? - José Sánchez