一、通过 pip 安装正式发布版本
安装 pip。最简单的方式是使用 独立 pip 安装器。若你的系统早已安装 pip,你可能需要更新它,因为它可能过期了。如果它过期了,你会知道的,因为过期的用不了。
pip3 install Django
二、创建项目
创建项目的基本运行环境。
# 创建项目youckumonitor django-admin startproject youckumonitor # 切换到youckumonitor项目目录 cd youckumonitor/ # 创建应用monitor django-admin startapp monitor # 创建静态文件目录static mkdir static # 创建模板文件目录templates mkdir templates # 运行Django,监听80端口 python3 manage.py runserver 0.0.0.0:80
三、错误处理
3.1、sqlite报错
sqlite版本错误。
'SQLite 3.9.0 or later is required (found %s).' % Database.sqlite_version django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
解决方法:sqlite版本过低,升级sqlite版本即可。但是我们基本不用sqlite,直接使用MySQL数据库即可。
3.2、安装mysqlclient报错
MySQLdb/_mysql.c:46:20: fatal error: Python.h: No such file or directory #include "Python.h" ^ compilation terminated. error: command 'gcc' failed with exit status 1
解决方法:安装python-devel。
yum -y install python-devel yum -y install python3-devel
或者报错如下
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient?
解决方法:
vim myproject/__init__.py
import pymysql
pymysql.install_as_MySQLdb()
import pymysql
ModuleNotFoundError: No module named 'pymysql'
pip3 install pymysql
报错
django.db.utils.OperationalError: (1193, "Unknown system variable
'default_storage_engine'")
是mysql的版本过低。我的是5.1.47,django2.2.7起码需要mysql5.7.
更新mysql版本到5.7.2后项目启动成功,快的飞起。
3.3、Python3启动django项目报错“NameError: name '_mysql' is not defined”
报错如下:
“NameError: name '_mysql' is not defined” python3 manage.py runserver 0.0.0.0:80 ...... ...... ...... File "/usr/local/lib64/python3.6/site-packages/MySQLdb/__init__.py", line 24, in <module> version_info, _mysql.version_info, _mysql.__file__ NameError: name '_mysql' is not defined
原因是:
Mysqldb 不兼容 python3.5 以后的版本
解决方法:
使用pymysql代替MySQLdb
步骤:
安装pymysql:
pip install pymysql
打开项目在setting.py的init.py,或直接在当前py文件最开头添加如下:
importpymysqlpymysql.install_as_MySQLdb()
四、启动项目
python3 manage.py runserver 0.0.0.0:8000