У меня есть основное приложение-парсер, который я создаю в Python. Я наблюдаю за папкой и импортирует файлы, когда они там отбрасываются. У меня есть MongoDB, к которому я пытаюсь сохранить импорт. Там почти ничего. Проблема возникает, когда я пытаюсь включить один из моих файлов class/mongo-document. Я уверен, что это простая проблема синтаксиса, которую я не понимаю. У меня установлены все мои требования, и я запускаю это в виртуальном env. Это мое первое приложение для python, хотя, скорее всего, я этого не вижу.Ошибка при попытке импорта между файлами python
Моя файловая структура
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")
Если я не включаю класс hl7message в parser.py он работает нормально, но как только я включил его, я получаю сообщение об ошибке, так что я уверен, что у него есть что-то для этого файла. Сообщение об ошибке, однако, не полезно. Я не знаю, попал ли я в какой-то замкнутый цикл или что-то в этом роде.
К сожалению, трассировки стека ниже
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'
Каков точный текст ошибки? – rassar
У вас есть файл '__init__'? –
@rassar К сожалению, я добавил трассировку стека – Jhorra