更改开发和生产设置结构后,django-admin“ ModuleNotFoundError:”

时间:2018-12-10 11:52:11

标签: django django-admin django-settings

背景

我最近开始学习Python Django。我了解到,针对不同的环境使用单独的设置文件是一种很好的做法。因此,我试图实现类似于此Wiki的“环境的简单包装组织”部分中所述的内容:https://code.djangoproject.com/wiki/SplitSettings

问题

当我现在运行django-admin命令时,出现ModuleNotFoundError。在下面,我复制了粘贴“ django-admin check --deploy”的错误日志。 “ python manage.py runserver --settings = CollegeComp.settings.development”可以正常工作。

我尝试过的事情

我读到我可能必须在我的虚拟环境中重置DJANGO_SETTINGS_MODULE环境变量。我输入了“ set DJANGO_SETTINGS_MODULE = CollegeComp.settings.development”,但仍然出现相同的错误。

Python路径

在激活虚拟环境的情况下在外壳程序中键入以下内容:

import sys
print(sys.path)

我得到以下信息:

['C:\\Users\\myusername\\Documents\\UdemyDjango\\MyPersonalProject\\College-Project-master\\CollegeComp', 
'C:\\Users\\myusername\\Anaconda3\\envs\\MyDjangoEnv\\python37.zip', 
'C:\\Users\\myusername\\Anaconda3\\envs\\MyDjangoEnv\\DLLs',
'C:\\Users\\myusername\\Anaconda3\\envs\\MyDjangoEnv\\lib',
'C:\\Users\\myusername\\Anaconda3\\envs\\MyDjangoEnv',
'C:\\Users\\myusername\\Anaconda3\\envs\\MyDjangoEnv\\lib\\site-packages']

错误日志

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\Scripts\django-admin-script.py", line 10, in <module>
    sys.exit(execute_from_command_line())
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\base.py", line 329, in run_from_argv
    connections.close_all()
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\utils.py", line 220, in close_all
    for alias in self:
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\utils.py", line 214, in __iter__
    return iter(self.databases)
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\utils\functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\utils.py", line 147, in databases
    self._databases = settings.DATABASES
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\conf\__init__.py", line 57, in __getattr__
    self._setup(name)
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\conf\__init__.py", line 44, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\site-packages\django\conf\__init__.py", line 107, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "C:\Users\myusername\Anaconda3\envs\MyDjangoEnv\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'CollegeComp'

我的项目目录

CollegeComp
|-CollegeComp
  |-settings
    |-__init__.py
    |-base.py     
    |-development.py 
    |-local.py 
    |-production.py
  |-__init__.py 
  |-urls.py  
  |-wsgi.py
|-<my apps>     

base.py

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR =  os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
<rest of standard Django settings.py code>

development.py

from CollegeComp.settings.base import *

#Override base.py settings here
DEBUG = True


#Import local setting file
try:
    from CollegeComp.settings.local import *
except:
    pass

local.py

from CollegeComp.settings.base import *

#Override base settings here

DEBUG = True

production.py

from CollegeComp.settings.base import *

#Override base settings here

DEBUG = False


#Import local setting file
try:
    from CollegeComp.settings.local import *
except:
    pass

系统信息

Django 2.1版 作业系统:Windows 10 Python版本:3.7.0

我很感谢我能得到的任何帮助。

0 个答案:

没有答案