[英]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.