部署spug二次开发环境时常见的故障解决方案

简介: 这篇文章介绍了部署spug二次开发环境时可能遇到的常见问题及其解决方案,包括环境准备、故障处理和相关配置。

作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.环境准备

1>.安装python 3.6

[root@docker201.yinzhengjie.com ~]# pyenv install -l  # 查看pyenv支持安装的环境。
[root@docker201.yinzhengjie.com ~]# 
[root@docker201.yinzhengjie.com ~]# pyenv install 3.6.12 -v  # 由于spug基于3.6进行开发的,因此我建议大家就直接使用python 3.6的最新版本即可,如果用最新python 3.9.1版本可能会存在一些不可预测的问题哟~  
[root@docker201.yinzhengjie.com ~]#

2>.查看已安装的python版本

[root@docker201.yinzhengjie.com ~]# pyenv versions
* system (set by /root/.python-version)  # 注意哈,我的CentOS 7.9服务器自带的python环境是python 2.7.5
  3.6.12
  3.6.12/envs/spug3612
  3.9.1
  3.9.1/envs/python391
  python391
  spug3612
[root@docker201.yinzhengjie.com ~]#

3>.关于虚拟环境和python系统版本环境自由切换的命令

[root@docker201.yinzhengjie.com ~]# python -V
Python 2.7.5
[root@docker201.yinzhengjie.com ~]# 
[root@docker201.yinzhengjie.com ~]# pyenv local spug3612
(spug3612) [root@docker201.yinzhengjie.com ~]# 
(spug3612) [root@docker201.yinzhengjie.com ~]# python -V
Python 3.6.12
(spug3612) [root@docker201.yinzhengjie.com ~]# 
(spug3612) [root@docker201.yinzhengjie.com ~]# pyenv local system
[root@docker201.yinzhengjie.com ~]# 
[root@docker201.yinzhengjie.com ~]# python -V
Python 2.7.5
[root@docker201.yinzhengjie.com ~]# 


其它常用的命令可参考我之前整理的笔记:
  https://www.cnblogs.com/yinzhengjie/p/10624755.html
  https://www.cnblogs.com/yinzhengjie/p/10624755.html
有关部署spug开源的运维平台可参考官网:
  https://www.spug.dev/docs/install/
温馨提示:
  如果想要快速体验spug的话,我推荐大家使用docker方式安装,如果你的服务器已经部署好docker环境且网络不差的情况下,基本上在2分钟之内就能运行你的spug程序啦~经过体验我觉得该项目还是很不错的,于是有必要参考一下源码来学习下!

二.常见的故障处理

1>.由于没有安装ldap引发的"Modules/constants.h:7:18: 致命错误:lber.h:没有那个文件或目录"异常

  报错原因:  
    缺少open-ldap的依赖环境,我估摸是spug项目调用了ldap相关的模块导致的,因此我们的Linux系统需要有对应的ldap环境哟~      

  解决方案:  
    [root@docker201.yinzhengjie.com ~]# yum -y install openldap-devel  

  温馨提示:  
    如果在window上安装的spug环境的话,建议直接将"open_code\spug\spug_api\requirements.txt"文件中的"python-ldap==3.2.0"的内容注释,这样就可以暂时先不解决LDAP的问题,但是在Linux上如果你还想支持该功能,推荐大家还是安装相应的环境。  
    当然,如果我们跳过ldap的安装,直接按照官方的文档来操作项目肯定是运行不起来的,因为在源码中有导入对应的ladp相关的模块,因此在运行代码前,建议先将"import ldap"相关的代码先暂时注释掉,等我们真的需要使用的时候再来搞!

2>.django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

  报错原因:
    SQLite 的版本过低,因为spug依赖的是SQLite 3.8.3 及更高的版本,而CentOS 7.9中仅找到了3.7.17版本,因此会抛出异常。

  解决方案:
    打开"http://www.sqlite.org/"网址,下载较新的版本安装即可。

  我参考网上的解决方案,下载的版本并不是最新的SQLite版本,但的确能解决问题,一下是编译安装的步骤:
        [root@docker201.yinzhengjie.com ~]# tar zxf sqlite-autoconf-3270200.tar.gz 
        [root@docker201.yinzhengjie.com ~]# cd sqlite-autoconf-3270200
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# 
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# ./configure --prefix=/usr/local/sqlite
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]#
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# make -j 4 && make install
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# 
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# ll /usr/bin/sqlite3 
        -rwxr-xr-x. 1 root root 56264 1月 28 2020 /usr/bin/sqlite3
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# 
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# mv /usr/bin/sqlite3 /usr/bin/sqlite3-`date +%F`
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# 
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# ll /usr/bin/sqlite3*
        -rwxr-xr-x. 1 root root 56264 1月 28 2020 /usr/bin/sqlite3-2021-01-19
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]#
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# cd /usr/local/sqlite/bin/
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# ll
        总用量 5932
        -rwxr-xr-x 1 root root 6070384 1月 19 00:06 sqlite3
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# 
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# ln -sv ../local/sqlite/bin/sqlite3 /usr/bin/sqlite3
        "/usr/bin/sqlite3" -> "../local/sqlite/bin/sqlite3"
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]#
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# ll /usr/bin/sqlite3
        lrwxrwxrwx 1 root root 27 1月 19 00:14 /usr/bin/sqlite3 -> ../local/sqlite/bin/sqlite3
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]#
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# vim /etc/profile
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# 
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# tail -2 /etc/profile
        # Add by yinzhengjie
        export LD_LIBRARY_PATH="/usr/local/sqlite/lib"
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# 
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# source /etc/profile
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]#
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# sqlite3 --version
        3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]#
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# cd
        [root@docker201.yinzhengjie.com ~]# 
        [root@docker201.yinzhengjie.com ~]# sqlite3 --version
        3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
        [root@docker201.yinzhengjie.com ~]#

目录
相关文章
|
26天前
|
消息中间件 运维 监控
软件环境管理问题之IaC管理环境中的问题如何解决
软件环境管理问题之IaC管理环境中的问题如何解决
|
26天前
|
Shell Python
软件环境管理问题之环境管理中常见的五个问题如何解决
软件环境管理问题之环境管理中常见的五个问题如何解决
|
10月前
|
数据可视化 IDE BI
如何实现软件的快速交付与部署?
如何实现软件的快速交付与部署?
|
安全 BI
OKCC系统都有哪些功能及搭建方案
随着企业对服务逐渐重视,开始意识到呼叫中心作为客户服务水平和沟通效率的基本平台,并且有越来越多的企业开始利用呼叫中心外呼方式销售自己的产品。在此背景下,很多企业,无论规模大小,都有建立自己呼叫中心的想法。
|
监控
部署平台环境可用性使用指南
部署平台环境可用性使用指南
247 0
部署平台环境可用性使用指南
|
iOS开发 Windows
弱网环境搭建方案选型
今天来聊聊目前大致有哪些可以搭建弱网环境的方案以及各自存在的问题。
515 0
|
Web App开发 JavaScript 前端开发