簡體   English   中英

ModuleNotFoundError:django 應用程序之外沒有名為“config”的模塊

[英]ModuleNotFoundError: No module named 'config' outside django app

我在我的項目中使用cookiecutter-django並在嘗試從應用程序外部的配置導入設置時遇到問題。 獲取錯誤ModuleNotFoundError: No module named 'config'項目結構

project
 ┣ .envs
 ┃ ┗ .local
 ┃ ┃ ┣ .bot
 ┃ ┃ ┣ .django
 ┣ bot
 ┃ ┣ __init__.py
 ┃ ┗ bot.py
 ┣ compose
 ┃ ┣ local
 ┃ ┃ ┣ django
 ┃ ┃ ┃ ┣ Dockerfile
 ┃ ┃ ┃ ┗ start
 ┃ ┃ ┗ pytelegrambot
 ┃ ┃ ┃ ┣ Dockerfile
 ┃ ┃ ┃ ┗ start
 ┣ config
 ┃ ┣ settings
 ┃ ┃ ┣ __init__.py
 ┃ ┃ ┣ base.py
 ┃ ┃ ┣ local.py
 ┃ ┣ __init__.py
 ┃ ┣ urls.py
 ┃ ┗ wsgi.py
 ┣ project
 ┃ ┣ app
 ┃ ┃ ┣ migrations
 ┃ ┃ ┃ ┗ __init__.py
 ┃ ┃ ┣ admin.py
 ┃ ┃ ┣ apps.py
 ┃ ┃ ┣ signals.py
 ┃ ┃ ┣ models.py
 ┃ ┃ ┗ views.py
 ┣ requirements
 ┃ ┣ base.txt
 ┣ README.md
 ┣ local.yml
 ┣ manage.py

機器人.py

import telebot
from config.settings.base import env

bot = telebot.TeleBot(env('BOT_TOKEN'))

def send_welcome(message):
    print(message)

if __name__ == '__main__':
    bot.infinity_polling()

信號.py

from bot.bot import send_welcome

@receiver(post_save, sender=Model)
def translate(sender, instance, created, **kwargs):
    send_wlcome("Hi")

在這里,我在創建 object 時在電報機器人上發送消息。 如果我嘗試使用os.environ['BOT_TOKEN']它會給我另一個來自signals.py KeyError: 'BOT_TOKEN'錯誤。 BOT_TOKEN 位於.envs/.local/.bot拜托,有人可以幫忙嗎?

您必須在項目目錄中設置代碼。

Django cookiecutter 將根路徑項目定義為項目目錄,因此所有代碼都必須設置在那里。

在 manage.py 文件中,您可以看到將項目目錄作為根路徑的代碼。 你可以改變它,但我不確定這是個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM