1、部署环境说明

#查看 uname -a
Linux VM_0_2_centos 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
#查看cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

2、问题汇总

2.1 Django编译安装报错

错误信息:ImportError: libffi.so.5: cannot open shared object file: No such file or directory

处理方案:libffi已经编译安装了且有该库文件,需要在环境变量中新增export LD_LIBRARY_PATH=$prefix_path/lib64/路径。

2.2 Django接口文档打开报错

错误信息:AttributeError: ‘AutoSchema’ object has no attribute ‘get_link’
处理方案:在setting文件中新增
REST_FRAMEWORK = {
’DEFAULT_SCHEMA_CLASS’:’rest_framework.schemas.AutoSchema’
}

2.3 非root用户源码安装python3.7

错误信息:报错_ctype未找到,但是系统以及安装yum intsall -y libbfi-devel包,仍然报错。
解决方案:通过root用户进行源码安装。

2.4 数据迁移同步问题

2.4.1 Django报错:(fields.E304) Reverse accessor for ‘User.groups’ clashes with reverse access

在pycharm中运行Django:执行命令:python manage.py makemigrations时,报错

解决办法:
在settings.py文件中加入
AUTH_USER_MODEL = ‘user.User’
就可以了。具体是原因,也没太搞清楚。

2.4.2 django.db.utils.InternalError: (1005, u"Can’t create table ‘dev_scrcu.#sql-1e3c_1e52821’ (errno: 150)")

原因是:pymysql的版本引起


解决方法:重新安装pymysql版本。

2.4.3 django启动数据同步(python manage.py migrate)后报错

错误信息:FROM unnest(c.conkey) WITH ORDINALITY co…

原因:数据库采用pg11.4,而环境变量initdb所在位置为系统默认数据库版本,即环境变量未生效。在创建数据库初始化时,系统本身是带pg9版本,导致执行initdb -D datadir时为9版本,引起所建数据库和数据库服务版本不一致,从而产生错误。

解决方法:将pg11.4版本写入对应用户环境变量,重新初始化。

2.4.4 数据迁移问题(django.db.utils.InternalError:(1050,"Table ‘tb_content’ already exists”))

解决方法

先删掉已生成的文件如:

然后输入:
python manage.py makemigrations --fake
python manage.py migrate --fake

具体效果如下:

最后在执行迁移操作:
#生成迁移文件
python manage.py makemigrations
#执行迁移命令
python manage.py migrate