DJANGO_SETTINGS_MODULE没有命名的模块

fnatzsnv  于 2023-06-25  发布在  Go
关注(0)|答案(2)|浏览(126)

我试图为我的数据库创建一个填充脚本,但我得到一个名为No module的错误。

Project Structure:
staticone/
    manage.py
    mysite/
      populate_rango
      settings
      urls
      __init__
      wsgi
      rango/

追溯:

Traceback (most recent call last):
File "populate_rango.py", line 8, in <module>
django.setup()
File "/home/ubuntu/virtenv/webstatic/lib/python3.5/site-
packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/ubuntu/virtenv/webstatic/lib/python3.5/site-
packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/home/ubuntu/virtenv/webstatic/lib/python3.5/site-
packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'mysite'

我的道路:

['/home/ubuntu/virtenv/webstatic/staticone/mysite', 
 '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-
 x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', 
 '/home/ubuntu/virtenv/webstatic/lib/python3.5/site-packages']

我的settings.py文件在mysite下
populate_rango.py在mysite文件夹下:

import sys
 print (sys.path)
 import os
 os.environ.setdefault('DJANGO_SETTINGS_MODULE','settings')
 import django
 django.setup()
 from mysite.rango.models import Category,Page

如果我尝试
os.environ.setdefault('DJANGO_SETTINGS_MODULE','mysite.settings')
我得到同样的错误:
没有名为mysite的模块。
mysite在路径上,所以我很困惑为什么它找不到设置文件。

7nbnzgx9

7nbnzgx91#

我需要把mysite的父目录放在路径上。我只有/home/ubuntu/virtenv/webstatic/staticone/mysite。现在,当我包含/home/ubuntu/virtenv/webstatic/staticone/时,它可以正常工作。

import sys
sys.path.append("/home/ubuntu/virtenv/webstatic/staticone/")
print (sys.path)
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE','mysite.settings')
import django
django.setup()
from mysite.rango.models import Category,Page

现在起作用了

0yycz8jy

0yycz8jy2#

你可以通过以下方式使它充满活力

import sys
from pathlib import Path
sys.path.append(Path(__file__).resolve().parent.parent.__str__())
print (sys.path)
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE','mysite.settings')
import django
django.setup()
from mysite.rango.models import Category,Page

相关问题