赞
踩
cd sqlcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" --disable-tcl
make && make install
可能会出现的问题:
问题一:
configure: error: OpenSSL Crypto library not found
解决办法:
①在线下载:
apt-get install libssl-dev
②离线包下载:
http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_1.1.1f-1ubuntu2.16_amd64.deb
dpkg -i libssl-dev_1.1.1f-1ubuntu2.16_arm64.deb
问题二:
/bin/sh:1:tclsh:not found
解决办法:
①在线下载:
apt-get install libtcl8.6 tcl8.6
②离线下载:
http://archive.ubuntu.com/ubuntu/pool/main/t/tcl8.6/libtcl8.6_8.6.10+dfsg-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/t/tcl8.6/tcl8.6_8.6.10+dfsg-1_amd64.deb
分别dpkg安装
问题三:
如果有报错类似:
sqlite3.c:16702:3: error: unknown type name ‘sqlite3’
解决办法:
检查当前目录下sqlite3.h是否为空,如果空的文件就删除
cd pysqlcipher3
python3 setup.py install
https://github.com/benjaoming/django-sqlcipher/
下载分支develop
cd django-sqlcipher
python3 setup.py install
①找到django_sqlcipher-0.1.2-py3.6.egg安装的位置
②解压django_sqlcipher-0.1.2-py3.6.egg
③将sqlcipher文件夹拷贝到 django/db/backends/ 目录下(有则不用拷贝)
说明:django/db/backends/ 目录下是 django可以用到的数据库引擎
④修改sqlcipher/backend/base.py
将 from pysqlcipher import dbapi2 as Database 改为 from pysqlcipher3 import dbapi2 as Database 保存
①INSTALLED_APPS中注册 'sqlcipher'
②配置数据库密码 PRAGMA_KEY = '654321'
③DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlcipher', # 使用sqlcipher数据库引擎
'NAME': os.path.join(BASE_DIR,'db.sqlite3'),
}
}
④将sqlcipher/backend/base.py移出bakend文件
可能遇到的问题:
问题一:
ImportError: libsqlcipher.so.0: cannot open shared object file: No such file or directory
解决方法:
①首先需要打开/etc/ld.so.conf文件
vim /etc/ld.so.conf
②然后在文件中中加入一行
/usr/local/lib
③保存之后,运行
/sbin/ldconfig -v
更新配置后,编译时就不会找不到.so
问题二:
ImportError: cannot import name 'RemovedInDjango20Warning' from 'django.utils.deprecation'
解决方法:
修改sqlcipher/base.py中RemovedInDjango20Warning为RemovedInDjango30Warning
问题三:
AttributeError: module 'django.db.backends.utils' has no attribute 'typecast_decimal'
解决办法:
sqlcipher/base.py中增加
backend_utils.typecast_decimal = decimal.Decimal
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。