【问题标题】:Django-admin command error Unable to start projectDjango-admin 命令错误无法启动项目
【发布时间】:2022-01-05 20:09:27
【问题描述】:

我正在尝试使用 django-admin 命令在虚拟环境中启动一个项目。

点冻结输出: django==2.0.7 (教程的一部分与更新包相同) pytz==2021.3

我得到的 django-admin 检查错误是

Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Program Files\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\Scripts\django-admin.exe\__main__.py", line 7, in <module>
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\core\management\__init__.py", line 425, in execute_from_command_line
    utility.execute()
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\core\management\__init__.py", line 419, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\core\management\base.py", line 373, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\core\management\base.py", line 417, in execute
    output = self.handle(*args, **options)
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\core\management\commands\check.py", line 63, in handle
    self.check(
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\core\management\base.py", line 438, in check
    all_issues = checks.run_checks(
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\core\checks\registry.py", line 77, in run_checks    new_errors = check(app_configs=app_configs, databases=databases)
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\core\checks\templates.py", line 29, in check_string_if_invalid_is_string
    for conf in settings.TEMPLATES:
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\conf\__init__.py", line 84, in __getattr__
    self._setup(name)
  File "C:\Users\%CurrentUser%\Documents\Dev\Django\lib\site-packages\django\conf\__init__.py", line 65, in _setup
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting TEMPLATES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

这只是在我删除旧项目以使用综合教程重新开始之后开始的。我尝试通过清除 \dev\django\ 文件夹并重新启动来删除 virtualenv。

我已经看到通过编辑 settings.py 或 manage.py 文件来回答其他问题,但我现阶段没有这些问题。

谢谢。

更新#1:尝试修复 python 安装,并对另一个用户执行相同的操作。仍然得到错误。我注意到启动 django-admin.py 和 .exe 唯一的区别是 .exe 先通过 runpy.py

我犯了一个错误,这是 django-admin startproject 的错误

raceback (most recent call last):
  File "C:\Program Files\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Program Files\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\users\liam\documents\dev\Django\Scripts\django-admin.exe\__main__.py", line 7, in <module>
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\core\management\__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\core\management\base.py", line 288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\core\management\base.py", line 335, in execute
    output = self.handle(*args, **options)
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\core\management\commands\startproject.py", line 20, in handle
    super().handle('project', project_name, target, **options)
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\core\management\templates.py", line 117, in handle
    django.setup()
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\__init__.py", line 16, in setup
    from django.urls import set_script_prefix
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\urls\__init__.py", line 1, in <module>
    from .base import (
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\urls\base.py", line 8, in <module>
    from .exceptions import NoReverseMatch, Resolver404
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\urls\exceptions.py", line 1, in <module>
    from django.http import Http404
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\http\__init__.py", line 5, in <module>
    from django.http.response import (
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\http\response.py", line 13, in <module>
    from django.core.serializers.json import DjangoJSONEncoder
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\core\serializers\__init__.py", line 23, in <module>
    from django.core.serializers.base import SerializerDoesNotExist
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\core\serializers\base.py", line 6, in <module>
    from django.db import models
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\db\models\__init__.py", line 3, in <module>
    from django.db.models.aggregates import *  # NOQA
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\db\models\aggregates.py", line 5, in <module>
    from django.db.models.expressions import Case, Func, Star, When
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\db\models\expressions.py", line 486, in <module>
    class TemporalSubtraction(CombinedExpression):
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\db\models\expressions.py", line 487, in TemporalSubtraction
    output_field = fields.DurationField()
  File "C:\Users\Liam\Documents\Dev\Django\lib\site-packages\django\db\models\fields\__init__.py", line 155, in __init__
    if isinstance(choices, collections.Iterator):
AttributeError: module 'collections' has no attribute 'Iterator'

更新#2 我更新到 Django 3.0.0 点冻结输出:

asgiref==3.4.1
Django==3.0
pytz==2021.3
sqlparse==0.4.2

它工作我可以使用 django-admin startproject。我仍然很奇怪它可以与 2.0.7 一起使用,并且以前无法与更新的软件包一起使用。

【问题讨论】:

    标签: python python-3.x django


    【解决方案1】:

    在您的settings.py 文件中应该有一个名为TEMPLATES 的变量

    当开始一个新项目时,它应该看起来像这样:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR,'templates')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                     'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    

    根据您向我们显示的错误消息,我猜这可能会丢失或配置错误。

    【讨论】:

    • 我无法创建项目来访问 settings.py 文件。在创建虚拟环境并安装 Django 2.0.7 之后,我被困在了这一步。它立即开始出错。 [projectname] 已创建,但通常在其中生成的文件不存在。
    • 我在 .\Dev\Django\Lib\site-packages\django\conf\project_template\project_name 目录中找到了一个名为 settings.py-tpl 的文件。 TEMPLATES 函数没有像你的那样定义,它缺少 'DIRS': [os.path.join(BASE_DIR,'templates')] 部分。我的是空白的。我注入了你的代码,可惜没有任何变化。
    • 你能把你坚持的教程的链接发给我吗?请问您在哪一步卡住了?
    【解决方案2】:

    尝试不同的方法来创建您的项目,看看是否可行?

    python -m django &lt;command&gt;

    我还仔细检查过,您使用的是真正旧版本的 django,我不推荐。

    也许尝试升级到更高版本的 django 并重试原始命令?

    【讨论】:

      【解决方案3】:

      我遇到了像你这样的人.. 我通过使用这个命令来解决:

      python -m pip install -U Django

      这意味着我们无法升级您的 jdango 版本..

      你不能再次尝试使用命令创建新项目:

      django-admin startproject yournameproject

      祝你好运

      【讨论】:

        猜你喜欢
        • 2016-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-05
        • 2013-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多