CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)

简介: CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)

@[toc]

1、CentOS安装OpenSSL1.1.1(前置环境)

编译安装Python3.10时需要openssl1.1.1

查看当前版本 & 删除openssl1.0

openssl version
yum remove openssl

切换目录,下载安装包,解压并进入目录

cd /opt
wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz --no-check-certificate
tar -zxf openssl-1.1.1n.tar.gz
cd openssl-1.1.1n

安装依赖

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel

yum install -y perl-CPAN
perl -MCPAN -e shell
cpan[1]> install IPC/Cmd.pm

配置,编译,安装,软连接

./config --prefix=/usr/local/openssl
make -j 2
make install
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

环境变量

vim /etc/ld.so.conf

 在文件末尾添加一行代码:
/usr/local/openssl/lib

保存:
vim : q

使之生效:
ldconfig -v

验证版本:
openssl version

2、CentOS安装 Python 3.10

基础环境配置升级

sudo yum -y update
sudo yum -y groupinstall “Development tools”
sudo yum -y install openssl-devel libffi-devel bzip2-devel
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install -y libffi-devel zlib1g-dev
yum install zlib* -y

切换目录, 下载安装包, 解压并进入源码目录

cd /opt
wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
tar xvzf Python-3.10.4.tgz
cd Python-3.10.4

配置编译并且安装,创建软连接,参考

./configure --enable-optimizations --with-openssl=/usr/local/openssl-1.1.1 --with-openssl-rpath=auto
./configure  --with-openssl=/usr/local/openssl-1.1.1 --with-openssl-rpath=auto

make clean
make -j && make install
ln -sf /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -sf /usr/local/python3/bin/python3 /usr/bin/python3


报错:make[1]: *** [pybuilddir.txt] Error 1 make[1]: Leaving directory `/opt/Python-3.10.4' make: *** [profile-opt] Error 2
在低版本的gcc版本中带有 --enable-optimizations 参数时会出现上面问题
gcc 8.1.0修复此问题
1、升级gcc至8.1.0【不推荐】
2、./configure参数中去掉 --enable-optimizations

验证

python3 --version

默认的centos7是没有安装pip,先添加epel扩展源

yum -y install epel-release
yum install python-pip

更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用

vi /usr/bin/yum
把第一行的#! /usr/bin/python 修改为如下
#! /usr/bin/python2

vi /usr/libexec/urlgrabber-ext-down
#! /usr/bin/python2

3、创建虚拟环境

python3创建虚拟环境

sudo yum install python3-pip
sudo /usr/local/bin/python3 -m pip install --upgrade pip
sudo /usr/local/bin/python3 -m pip install setuptools --user  -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
成功安装:
sudo  pip3 install virtualenv --user  -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

-i  https://mirrors.aliyun.com/pypi/simple/  --trusted-host  mirrors.aliyun.com
-i http://pypi.mirrors.ustc.edu.cn/simple/ --trusted-host pypi.mirrors.ustc.edu.cn

报错惨案:
https://blog.csdn.net/JIEJINQUANIL/article/details/102816801
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py

进入(cd)选择的目录搭建一个虚拟环境, 选择指定一个Python解释器
virtualenv cetnos_env
virtualenv -p /usr/bin/python3.10 cetnos_env

将会在当前的目录中创建一个名venv的文件夹,这是一个独立的python运行环境,包含了Python可执行文件, 以及 pip库的一份拷贝,但第三方包需要重新安装。
要开始使用虚拟环境,其需要被激活:
source env/bin/activate
deactivate

4、运行Django项目

基础版本,pycharm

本地运行
python manage.py runserver

云端运行(允许外网访问):
ALLOWED_HOSTS = ['*']
python manage.py runserver 0.0.0.0:8000
python3 manage.py runserver 0.0.0.0:8000

嗯,sqlite版本check不通过,就删删删
关于django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3
def check_sqlite_version():
    if Database.sqlite_version_info < (3, 9, 0):,版本改掉
然后 # deterministic=True,注释掉

路径版本

本地运行:
C:\_projetcs\Pycharm\fmyy_django\fmyy_django\env1\Scripts\python.exe manage.py runserver

Centos:
/www/wwwroot/fmyy_django/centos_env/bin/python3.10 manage.py runserver 0.0.0.0:8000

依赖安装:

pip install -r requirements.txt

本地
C:\_projetcs\Pycharm\Python310\Scripts\pip.exe install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

虚拟
/www/wwwroot/fmyy_django/centos_env/bin/pip3 install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

真实
python3 -m pip install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

# 报错:(更新sqlite)
s.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
cd /usr/local/src
wget http://www.sqlite.org/2021/sqlite-autoconf-3360000.tar.gz
tar -zxvf sqlite-autoconf-3360000.tar.gz
cd sqlite-autoconf-3360000
./configure --prefix=/usr/local/sqlite
make && make install
mv /usr/bin/sqlite3 /usr/bin/sqlite3_bak
cd /usr/local/sqlite/bin/
ln -s sqlite3 /usr/bin/sqlite3

vim /etc/profile
# 添加内容
export LD_LIBRARY_PATH="/usr/local/sqlite/lib"
# 生效文件
source /etc/profile

>>> import sqlite3
>>> sqlite3.sqlite_version
'3.36.0'
https://www.cnblogs.com/yoyo1216/p/14927862.html
https://blog.csdn.net/ldq_sd/article/details/123850041

#from sqlite3 import dbapi2 as Database  #注释它
from pysqlite3 import dbapi2 as Database #新加这段代码

然后执行
export LD_LIBRARY_PATH="/usr/local/lib"
目录
相关文章
|
2月前
|
数据管理 数据库 数据安全/隐私保护
Django—同一项目不同app使用不同数据库
在Django项目中实现不同app使用不同数据库的配置,可以通过配置多数据库、创建数据库路由和配置路由来实现。通过这种方法,可以有效地将数据隔离到不同的数据库,提高数据管理的灵活性和系统的可扩展性。希望本文能为开发者在Django项目中使用多数据库提供清晰的指导。
29 4
|
4月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
382 2
|
4月前
|
安全 Linux Shell
docker运行centos提示Operation not permitted
通过上述步骤,可以有效排查和解决在Docker中运行CentOS容器时遇到的"Operation not permitted"错误。这些措施涵盖了从权限配置、安全策略到容器运行参数的各个方面,确保在不同环境和使用场景下都能顺利运行容器。如果你需要进一步优化和管理你的Docker环境
315 3
|
6月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
194 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
5月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
583 3
|
5月前
|
安全 Linux 编译器
Centos 7.9如何使用源码编译安装curl最新版本
通过上述步骤,您就能在CentOS 7.9上成功地从源代码编译并安装curl的最新版本。这种方法不仅提供了灵活性,允许您定制编译选项,还确保了软件的最新功能和安全更新得到应用。
213 1
|
6月前
|
Linux Python
解决django项目报错很离谱的报错之RuntimeError: populate() isn't reentrant
解决django项目报错很离谱的报错之RuntimeError: populate() isn't reentrant
|
6天前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
6天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。

热门文章

最新文章