当前位置:   article > 正文

Django+Ubuntu20.04+SQLCipher_sqlcipher中ubuntu下载

sqlcipher中ubuntu下载

一、下载sqlcipher

SQLCipher · GitHub

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是否为空,如果空的文件就删除

二、下载pysqlcipher3源码

pysqlcipher3 · PyPI

cd pysqlcipher3
python3 setup.py install

三、下载django-sqlcipher

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 保存

四、Django配置sqlcipher引擎

①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文件

五、运行django项目

可能遇到的问题:

问题一:

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

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/877489
推荐阅读
相关标签
  

闽ICP备14008679号