ModuleNotFoundError:没有名为Foo的模块-如何将模型导入Django应用程序的脚本中?

乔纳斯

我的Django技能水平:noob

我很想DJANGO_SETTINGS_MODULE正确设置最终将模型导入脚本中。我将avirtualenv用于我的项目。

这是我目前的错误:

ModuleNotFoundError: No module named 'dashex'

和相应的feeder.py脚本:

import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'dashex.settings'
sys.path.append('os.path.dirname(os.path.dirname(os.path.abspath(__file__)))')
import django
django.setup()
import zmq
import time
from time import sleep
import uuid
from Dashboard_app.models import AccountInformation
[...]

背景:

我首先使用这里settings.configure()发布解决方案但是,此解决方案引发了错误...因此,我希望可以做到这一点。DJANGO_SETTINGS_MODULE

根据文档(docu),我必须使用Django-adminset DJANGO_SETTINGS_MODULE

我尝试过的


  • $ set DJANGO_SETTINGS_MODULE=dashex.settings在Windows上的命令提示符下执行,什么都没有发生。

  • 执行
    $ py manage.py set DJANGO_SETTINGS_MODULE=dashex.settings将引发错误unknown command set


  • $ django-admin set DJANGO_SETTINGS_MODULE=dashex.settingsmanage.py我的项目根目录中执行会引发错误no module named dashex

  • 从@Casper答案建议做上面提到的,但如何处理这个问题:
    C:\temp\testproject> set DJANGO_SETTINGS_MODULE=testproject.settings

  • @Max的解决方案建议将其附加export DJANGO_SETTINGS_MODULE=<django_project>.settings到我的虚拟环境中。这是什么意思,该怎么做?

  • 执行
    $ django-admin runserver --settings=dashex.settings也会引发错误no module named dashex

  • 执行后
    $ py manage.py runserver --settings=dashex.settings,将以正确的设置启动服务器。但是最初提到的错误仍然存​​在。

在此处输入图片说明

我的项目:

在此处输入图片说明

Settings.py:

import os.path
import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/


STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = ''

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ["127.0.0.1", "locahost"]


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    #other Apps
    'Wiki_app',
    'rest_framework',
    'Dashboard_app.apps.DashboardAppConfig'
]

@alasdair解决方案之后的最新回溯:

Traceback (most recent call last):
  File "C:\Users\Jonas Blickle\Desktop\dashex\Dashboard_app\feeder.py", line 6, in <module>
    django.setup()
  File "C:\Program Files\lib\site-packages\django\__init__.py", line 19, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "C:\Program Files\lib\site-packages\django\conf\__init__.py", line 79, in __getattr__
    self._setup(name)
  File "C:\Program Files\lib\site-packages\django\conf\__init__.py", line 66, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Program Files\lib\site-packages\django\conf\__init__.py", line 157, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "C:\Program Files\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'dashex'
[Finished in 0.37s]

工作解决方案:

import sys
sys.path.insert(0, r"C:\Users\Jonas\Desktop\Dashex")
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'Dashex.settings'
import django
django.setup()
from Dashboard.models import AccountInformation
[...]
阿拉斯代尔

django-admin和manage.py不用于设置环境变量,因此问题中的命令django-admin set DJANGO_SETTINGS_MODULE=dashex.settings毫无意义。

在Windows上,可以set DJANGO_SETTINGS_MODULE=dashex.settings在运行脚本之前在命令提示符下运行。您说您不想使用外壳程序,因此在脚本中设置环境变量可能会更容易。

import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'dashex.settings'

# Since feeder.py is in Dashboard_app, you need to add the parent directory
# to the python path so that dashex can be imported
# (without this you'll get the 'no module named dashex' error)
sys.path.append('..')

import django
django.setup()

# Now you can import models

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ModuleNotFoundError:没有名为“模型”的模块

ModuleNotFoundError:没有名为“ django”的模块

ModuleNotFoundError:导入模块时没有名为“ x”的模块

从模型导入事件ModuleNotFoundError:没有名为“模型”的模块

Django ModuleNotFoundError:没有名为“模型”的模块

ModuleNotFoundError:Django 中没有名为“posts”的模块

Python导入-ModuleNotFoundError:没有名为X的模块

相对导入-ModuleNotFoundError:没有名为x的模块

Python导入ModuleNotFoundError:没有名为'model'的模块

传递导入错误:ModuleNotFoundError:没有名为“ ...”的模块

无法导入ebooklib:ModuleNotFoundError:没有名为“ ebooklib”的模块

导入pyHook。ModuleNotFoundError: 没有名为“pyHook”的模块

ModuleNotFoundError:导入mysql时没有名为“_version”的模块

Django,ModuleNotFoundError:没有名为“django_pg”的模块

ModuleNotFoundError:没有名为“处理程序”的模块

Django + Apache ModuleNotFoundError:没有名为“ myproject”的模块

Django未运行:ModuleNotFoundError:没有名为“ encodings”的模块

Django ModuleNotFoundError:没有名为“ asgiref”的模块

ModuleNotFoundError:没有名为“ django.templates”的模块

Django ModuleNotFoundError:没有名为“ ui”的模块

ModuleNotFoundError:没有名为“ django.contrib.static”的模块

ModuleNotFoundError:没有名为“ django.urls”的模块

Django:ModuleNotFoundError:没有名为“sslserver”的模块

ModuleNotFoundError:没有名为“django_project”的模块

Django - ModuleNotFoundError:没有名为“alluth”的模块

Django - ModuleNotFoundError:没有名为“bootstrap5”的模块

ModuleNotFoundError:没有名为“django.core”的模块

Pylint:如何修复 ModuleNotFoundError:没有名为“matplotlib”的模块

如何修复ModuleNotFoundError:没有名为“ parts”的模块