centos下安装python3.x+django的mysql驱动,

分类: Python,服务器  • 发布时间: 2015-12-13 01:17:30  • 浏览量:35570

Python版本:3.5.1

Django版本:1.9

前面将Python升级完,然后将pip安装,然后是安装Django,高高兴兴的使用命令:

django-admin.py startproject first

把Django名为first的项目也建立了,然后使用命令:

django-admin.py startapp article

把名为article的app也创建了,马上就可以开启我的Django之旅了,创建完以后的目录结构为:

blob.png

然而我还是太年轻啊!

当我运行下面命令启动服务时:

python manage.py runserver

报了一个很大的错误:from django.db.backends import BaseDatabaseIntrospection, FieldInfo, TableInfo site-packages/django/db/backends/sqlite3/

很显然,Django安装完默认的数据库驱动是sqlite,而我并没有sqlite数据库,那就改成mysql吧,于是进入目录first/first/settings.py中,找到:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

修改成:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'first',
        'USER': 'python',
        'PASSWORD': '123456',
        'HOST': '192.168.99.124',
        # 'PORT': '',
    }
}

这种小问题,还想难住我,我高高兴兴的重新启动服务,然而我实在是太年轻啊,启动报了个新错误:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

很显然,没有装mysql驱动嘛,装一下就行了呗,于是乎我在命令行快速的打出了命令:

pip install mysql-python

然而,很不给面子的是:他下载完在安装的时候又报了一个错:ImportError: No module named 'ConfigParser'

好奇怪的感觉,于是打开了http://stackoverflow.com/一阵搜索后,原来是Python3.x相对于python2.x中的ConfigParser全部改成小写了,说明pip中的mysql-python不支持python3.x呗,可能是pip中更新的比较慢吧,那我们就去下载他们的源码安装,然而他的源码最新更新时间是2012年,依然没有对python3.x支持!

这可如何是好?换个支持python3的驱动试试吧,心中万马奔腾,当然是草泥马,于是乎在github上一顿搜索,找到了一个PyMySQL(https://github.com/PyMySQL/PyMySQL ),当然pip中也有它,于是我又飞快的在命令行中打出了:

pip install PyMySQL

非常顺利的就安装成功了,然而Django并不认这个外来的和尚,咋办呢,也好办,找到first/first/__init__.py,在里面输入以下内容并保存:

import pymysql
pymysql.install_as_MySQLdb()

然后我再运行python manage.py runserver时,又爆了一个提示:

You have unapplied migrations; your app may not work properly until they are applied.

Run 'python manage.py migrate' to apply them.

当然这个提示并不影响自带服务器的运行,这时候我们访问http://127.0.0.1:8000,会看到成功提示:

It worked!

Congratulations on your first Django-powered page.

Of course, you haven't actually done any work yet. Next, start your first app by running python manage.py startapp [app_label].

You're seeing this message because you have DEBUG = True in your Django settings file and you haven't configured any URLs. Get to work!

当然了,对于前面那个警告提示,我当然看着不爽,而且他也告诉我怎么做可以解决他,当然要处理啦!我飞快的复制一下内容到命令行中:

python manage.py migrate

然后在重启服务,就很正常啦!

文章标签: mysql, linux, centos, python, django, 驱动
用户评论:
  • 游客43707 2016-02-19 11:51:52

    验证有用

  • 游客69485 2016-03-03 19:44:09

    但我很怕到时候部署到云引擎的时候,云引擎的环境中没有PyMySQL

    • 游客98152 2016-03-03 21:04:05

      要是没有的话,只能用2.x了吧

  • 游客42427 2016-04-07 17:27:46

    博主你太逗了,问题解决

  • 游客50149 2016-04-25 22:55:26

    真是nice啊

  • 游客72209 2016-05-07 12:08:39

    = = very good 今天迁移sqlite3到mysql遇上这个问题了。

  • 游客48066 2016-05-13 23:18:09

    很有用,简单明了,谢谢博主

  • 游客82669 2016-05-27 14:15:44

    model.py下建的表没法用“python manage.py syncdb”同步,错误提示:Unknown command: 'syncdb',不知道为什么? 完全按照上面的步骤来的。

    • 游客54685 2016-06-23 03:07:23

      貌似py3.5已经没有syncdb了。 可以makemigrations然后再migrate

  • 游客69061 2016-06-27 00:43:59

    lz ,这个文件在哪里呀?first/first/__init__.py 多谢

    • 游客17393 2016-07-19 20:33:59

      看图啊,没有的话自己创建一个

  • 游客63800 2016-07-24 14:02:40

    亲 终于解决啦 而且是win下 就是这是个临时的吧 每次都要整一遍啊

  • 游客96965 2016-09-26 16:25:14

    LZ高人,俺早上折腾到下午这会儿,你2行代码解决了。[高]

  • 游客89157 2016-12-01 00:05:10

    感谢,我也折腾了半天

  • 游客89011 2016-12-06 10:41:09

    倒数第二步就通了,LZ~好样的。

  • 游客27739 2016-12-08 10:06:10

    OK,解决问题

  • 游客12267 2017-10-17 15:39:59

    谢谢博主,自己捣鼓了一整天,看了本博文后终于调通了!

  • 游客98954 2017-11-22 15:53:53

    谢谢博主!

  • 游客91655 2017-11-30 20:06:18

    很有用,问题已结局

  • 游客91655 2017-11-30 20:06:36

    已经解决,谢谢博主

  • 游客38574 2017-12-21 15:48:45

    谢谢博主,也解决了我的问题。

  • 游客32933 2017-12-31 19:44:16

    亲测可用

  • 游客39566 2018-02-07 15:01:03

    可以的老铁

  • 游客55201 2018-02-11 06:34:25

    谢谢博主,也解决了我的问题。

  • 游客75487 2018-04-17 20:41:36

    谢谢,解决了,但想说的是sqlite3不需要安装数据库,就是个文件

  • 游客71865 2018-05-16 15:03:24

    亲测有用