ModuleNotFoundError в коде python — не удается найти пользовательский класс в консольном приложении

#python #python-3.x

Вопрос:

Я создаю консольное приложение python, которое включает импорт пользовательского класса, который я использую. Каждый раз, когда я запускаю свое приложение, я получаю сообщение об ошибке ModuleNotFoundError: «Нет модуля с именем «Службы данных».

Вы можете помочь?

Ниже приведена структура моих папок:

 ETL
 Baseball
  Baseball_DataImport.py
 DataServices
  DataService.py
  ConfigServices.py
  PageDataMode.py
  SportType.py
 

Вот раздел импорта из Baseball_DataImport.py файл. Это файл, когда я запускаю, я получаю сообщение об ошибке:

 from bs4 import BeautifulSoup
import scrapy
import requests
import BaseballEntity
import mechanize
import re
from time import sleep
import logging
import time
import datetime
from functools import wraps
import json
import DataServices.DataService - Error occurs here
 

Вот мой DataService.py файл:

 import pymongo
import json
import ConfigServices
import PageDataModel
#from SportType import SportType
class DataServices(object):
      AppConfig: object
      def __init__(self):
          AppConfig = ConfigServices.ConfigService()
          #print(AppConfig)

      #def GetPagingDataBySport(self,Sport:SportType):
      def GetPagingDataBySport(self):
          #if Sport == SportType.BASEBALL:
            pagingData = []
            pagingData.append(PageDataModel.PageDataModel("", 2002, 2))
            pagingData.append(PageDataModel.PageDataModel("", 2003, 2))
            
            return pagingData
          
 

введите описание изображения здесь

Комментарии:

1. Имя вашего файла: DataService.py и название класса такое DataServices . Таким образом, импорт должен быть import DataService.DataServices . Файл идет первым, а класс внутри этого файла-вторым.

2. Аналогичная ошибка: Нет модуля с именем «DataService»

Ответ №1:

Может показаться, что ваша структура является:

 Baseball
  Baseball_DataImport.py
Dataservices
  Dataservice.py
 

Может быть, вам нужно сделать from Dataservices.Dataservice import DataServices

Редактировать:

Я создал структуру папок, и метод, который я вам показал, работает: Структура

Вот реализация Реализация

Dataservice.py содержит только:

 class DataServices():
  pass
 

Комментарии:

1. Аналогичная ошибка: Нет модуля с именем » Службы данных

2. Можете ли вы отредактировать часть структуры папок, чтобы увидеть, отличается ли она от того, о чем я догадывался?

3. Этот ответ, похоже, должен сработать. Вы можете попробовать включить пустой __init__.py файл в DataServices каталог.

4. @фиолетовый, это python 3, он не нужен __init__ , верно?

5. Та же проблема. @purple Я также удалил init.py файл тоже. Теперь я использую виртуальную среду. Будет ли это иметь какое-либо влияние?

Ответ №2:

Вы пробовали копировать Dataservice.py в папку проекта с main.py?

Комментарии:

1. У меня нет main.py и да, я пробовал это. Не сработало