Использование django моделей в стороннем python приложении

124Borman

Новичок
Пользователь
Янв 26, 2021
32
1
8
У меня есть проект на django, который находится на WSL Debian. Я делаю telegram bota, который будет брать информацию из моделей
Структура:
1619445462997.png
Код main.py:
Код:
import telebot #это pytelegrambotapi
import psycopg2 #для работы с базами данных
import requests #для запросов в глобальную сеть
import config

from index.models import Parking

bot = telebot.TeleBot(config.token) #подключаемся к боту

@bot.message_handler(content_types='text')
def start_message(message):
    if message.text.lower() == '/start':
        bot.send_message(message.chat.id, 'Вас приветствует система парковочных пространств.\nДоступные команды:\n/info - информация о парковках\n/price - тарифы на парковки и абонементы')
    elif message.text.lower() == '/info':
        bot.send_message(message.from_user.id, 'Инфо')


bot.polling(none_stop=True)
Я запускаю python3 main.py из WSL Debian и получаю следующую ошибку :
Traceback (most recent call last):
File "main.py", line 6, in <module>
from index.models import Parking
ModuleNotFoundError: No module named 'index'

Как необходимо импортировать модель?
 
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 203
542
113
Как необходимо импортировать модель?
Чтобы импортировать модель нужно сначала подключить django.
Вот пример:
Python:
import telebot
import config
import os
import sys
import django


# путь до папки с проектом
project_path = os.path.dirname(os.path.abspath('../../main.py'))
# добавляем его в PATH
sys.path.append(project_path)
# указываем какие настройки django нужно будет использовать
os.environ["DJANGO_SETTINGS_MODULE"] = "PaymentForParking.settings"
# подключаем django
django.setup()


# импортируем модель
from index.models import Parking


bot = telebot.TeleBot(config.TOKEN)


@bot.message_handler(commands=['start'])
def send_welcome(message):
    first_parking = Parking.objects.first()
    bot.send_message(message.chat.id, first_parking)


bot.polling(none_stop=True)
 

124Borman

Новичок
Пользователь
Янв 26, 2021
32
1
8
Чтобы импортировать модель нужно сначала подключить django.
Вот пример:
Python:
import telebot
import config
import os
import sys
import django


# путь до папки с проектом
project_path = os.path.dirname(os.path.abspath('../../main.py'))
# добавляем его в PATH
sys.path.append(project_path)
# указываем какие настройки django нужно будет использовать
os.environ["DJANGO_SETTINGS_MODULE"] = "PaymentForParking.settings"
# подключаем django
django.setup()


# импортируем модель
from index.models import Parking


bot = telebot.TeleBot(config.TOKEN)


@bot.message_handler(commands=['start'])
def send_welcome(message):
    first_parking = Parking.objects.first()
    bot.send_message(message.chat.id, first_parking)


bot.polling(none_stop=True)
При os.environ["DJANGO_SETTINGS_MODULE"] = "PaymentForParking.settings" появляется ошибка ModuleNotFoundError: No module named 'PaymentForParking'
 

Форум IT Специалистов