【问题标题】:ImportError: No module named 'testApp123' djangoImportError:没有名为“testApp123”django 的模块
【发布时间】:2023-03-27 23:17:01
【问题描述】:

我正在尝试一个示例 django 应用程序。我在 view.py 中添加了一些更改并尝试运行 migrate 但它给出了以下错误 -

athakur@athakur-Inspiron-7560:~/Documents/per_code/djangodemo$ python3 manage.py check
Traceback (most recent call last):
  File "/home/athakur/.local/lib/python3.5/site-packages/django/apps/config.py", line 143, in create
    app_module = import_module(app_name)
  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 'testApp123'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/home/athakur/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "/home/athakur/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 347, in execute
    django.setup()
  File "/home/athakur/.local/lib/python3.5/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/athakur/.local/lib/python3.5/site-packages/django/apps/registry.py", line 89, in populate
    app_config = AppConfig.create(entry)
  File "/home/athakur/.local/lib/python3.5/site-packages/django/apps/config.py", line 147, in create
    app_name, mod_path, cls_name,
django.core.exceptions.ImproperlyConfigured: Cannot import 'testApp123'. Check that 'djangodemo.apps.testapp.apps.TestAppConfig.name' is correct.

package 是正确的,因为如果我将 TestAppConfig 类中的名称更改为 testApp,它会显示 ImportError: No module named 'testApp'。

还有以下作品-

athakur@athakur-Inspiron-7560:~/Documents/per_code/djangodemo$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from djangodemo.apps.testapp.apps import TestAppConfig
>>> TestAppConfig.name
'testApp123'

知道为什么我运行任何 manage.py 命令时它仍然失败吗?

目录结构是-

djangodemo/
├── apps
│   ├── __init__.py
│   ├── __pycache__
│   │   └── __init__.cpython-35.pyc
│   └── testapp
│       ├── admin.py
│       ├── apps.py
│       ├── __init__.py
│       ├── migrations
│       │   └── __init__.py
│       ├── models.py
│       ├── __pycache__
│       │   ├── apps.cpython-35.pyc
│       │   ├── __init__.cpython-35.pyc
│       │   ├── urls.cpython-35.pyc
│       │   └── views.cpython-35.pyc
│       ├── tests.py
│       ├── urls.py
│       └── views.py
├── __init__.py
├── __pycache__
│   ├── __init__.cpython-35.pyc
│   ├── settings.cpython-35.pyc
│   ├── urls.cpython-35.pyc
│   └── wsgi.cpython-35.pyc
├── settings.py
├── urls.py
└── wsgi.py

【问题讨论】:

  • 通常是因为您的环境中设置的路径错误。它在os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangodemo.settings") 中的manage.py 中定义。首先检查一下。
  • @Borut 这是正确的,因为我在 settings.py 中添加了一些打印语句并且它工作正常。
  • testApp123 不存在!当我在你的树上寻找时,我没有看到它
  • @rakwen 它在 apps.py 的类中 - class TestAppConfig(AppConfig): name = 'testApp123'
  • 你用的django的女巫版本?你在哪里拿 djangodemo ?

标签: django python-3.x


【解决方案1】:

让它工作。正确的语法是 -

INSTALLED_APPS = [
    'djangodemo.apps.testapp',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

]

不知道为什么https://docs.djangoproject.com/en/2.0/intro/tutorial02/ 说反了。

我也是为了避免使用 djangodemo -

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

''' No need to reference with djangodemo after this '''
DJANGO_ROOT = os.path.join(BASE_DIR, os.path.basename(BASE_DIR))
path.append(DJANGO_ROOT)

使用过

INSTALLED_APPS = [
    'apps.testapp',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

]

【讨论】:

    猜你喜欢
    • 2012-10-21
    • 1970-01-01
    • 2021-01-28
    • 2020-09-07
    • 2018-02-05
    • 2015-07-20
    • 2018-07-28
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多