【问题标题】:Don't run python manage.py syncdb不要运行 python manage.py syncdb
【发布时间】:2016-01-05 02:06:23
【问题描述】:

我是python的新手。当我在 cmd 中运行此代码 python manage.py syncdb 时,出现此错误:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\Farshid\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\management\__init__.py", line 351, in execute_from_command_line
    utility.execute()
  File "C:\Users\Farshid\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\management\__init__.py", line 303, in execute
    settings.INSTALLED_APPS
  File "C:\Users\Farshid\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\conf\__init__.py", line 48, in __getattr__
    self._setup(name)
  File "C:\Users\Farshid\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\conf\__init__.py", line 44, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Users\Farshid\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\conf\__init__.py", line 92, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "C:\Users\Farshid\AppData\Local\Programs\Python\Python35-32\lib\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 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 662, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "C:\Users\Farshid\Desktop\Trying\Ecom\coding\coding\settings.py", line 18, in <module>
    from myApp.models import *
ImportError: No module named 'myApp
   raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'

我用谷歌搜索,但找不到好的解决方案,现在我该如何处理? 我使用最新版本的 django mysql community server-win64的最新版本,我的python版本是3.5.0。

我的项目结构:

-coding
--coding
---__init__.py
---settings.py
---urls.py
---wsgi.py

--manage.py

INSTALLED_APPS

'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

编辑:当我创建新项目并使用 slite3 时,不要出现此错误! 这是setting.py数据库部分代码:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'coding',
    'USER': 'root',
    'PASSWORD': 'root',
    'HOST': 'localhost',
    'PORT':'3306',
}
}

【问题讨论】:

  • 你能添加你项目的结构吗?你在哪里创建的目录是manage.pymyApp。另外,myApp 目录下还有哪些文件(你有__init__.py 吗?)
  • 我们需要更多的项目结构,而不仅仅是coding。你有myApp 文件夹吗?
  • 所以你已经创建了一个项目,但是里面还没有应用程序。继续创建一个 (manage.py startapp myApp) :) 查看tutorial
  • 请显示 INSTALLED_APPS 设置代码
  • 还有syncdb 从 1.7 开始贬值,你的版本是什么?

标签: python django


【解决方案1】:

您的 INSTALLED_APPS 设置中没有“myApp”应用程序。

'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myApp'

当然,应用程序应该已经在您的项目中(创建、克隆、复制或其他)以便可以访问。

【讨论】:

  • 缺少尾随逗号
  • 你的项目中至少有这个应用程序(里面有__init__.py的文件夹)吗? @Deja Vu 最后一个之后不需要逗号。
  • 注释掉你的 settings.py 的第 18 行(在那里你尝试从尚不存在的应用程序“myApp”中导入所有模型)。然后创建应用程序并将其添加到您已安装的应用程序中。之后返回您的模型导入。
【解决方案2】:

根据您的项目结构:

-coding
--coding
---__init__.py
---settings.py
---urls.py
---wsgi.py

--manage.py

您的项目中似乎没有任何应用程序。

创建应用类型:

python manage.py startapp app_name

并将 app_name 替换为您的应用名称,在您的情况下为 myApp。

之后,您需要在 settings.py 文件中的 INSTALLED_APPS 中包含该应用。

更多信息:https://docs.djangoproject.com/en/1.8/intro/tutorial01/#creating-models

【讨论】:

  • @Farshid 什么错误?您是否运行了我描述的命令? (python manage.py startapp app_name) 你在项目的根目录下吗?
  • @Farshid 你用 app_name 代替 myApp 像这样:python manage.py startapp myApp 吗?
  • @Farshid 如果您在 INSTALLED_APPS 中仍有“myApp”并且您尝试运行 startapp myApp,它将引发错误。确保在您创建应用程序之前,“myApp”不在 INSTALLED_APPS 中。
【解决方案3】:

来自我的旧答案:

如果您使用的是 python3,我发现最好的选择是使用 pymysql 将其导入设置文件中,如下所示

import pymysql
pymysql.install_as_MySQLdb()

django.db.backends.mysql 设置为ENGINE

【讨论】:

    【解决方案4】:

    你试过pip install mysqldb 吗?有一个特殊的 Python 包可以连接到 MySQL 服务器,您的系统上似乎缺少该包。

    【讨论】:

    • @Farshid 此评论需要更多详细信息! pip 成功完成了吗?如果您安装了两个不同版本的 Python,也许您需要 pip3
    • 我再说一遍:“我使用 python 3.5.0”。
    • @Farshid 至少告诉我pip 是成功安装包还是执行失败。
    • 是的,我可以用它安装包!
    【解决方案5】:

    我不知道如何打低谷,所以我删除了以前的答案。

    更新:

    简单的答案是您的 python 解释器看不到您的“myApp”,例如。由于路径不匹配。像 pycod333 建议的那样将 myApp 添加到 INSTALLED_APPS,并给我们反馈(回答他的问题)。

    【讨论】:

      【解决方案6】:

      根据您提供的信息,我发现了两个问题。 首先是缺少模块“myApp”,然后是mysql配置不正确的错误。

      让我们这样吧,

      1.python manage.py startapp myApp 2.In your settings, add the app thus: INSTALLED_APPS = (

      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'myApp',
      

      )

      3.pip install mysql-python 安装 mysql,因为您似乎缺少该功能。

      4.您的数据库设置看起来不错,这就是第 3 步很重要的原因。

      1. 然后python manage.py makemigrations myApp

      2. python manage.py migrate

      7.运行你的服务器,让我们看看你有什么

      编辑: 这也应该有助于解决 mysql 错误 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

      【讨论】:

        猜你喜欢
        • 2015-04-25
        • 1970-01-01
        • 2011-08-04
        • 1970-01-01
        • 2013-07-21
        • 2014-02-04
        • 2014-05-17
        • 1970-01-01
        • 2014-06-07
        相关资源
        最近更新 更多