CentOS 7上安装Python 3.11.5,支持Django
CentOS 7上安装Python 3.11.5,支持Django
今天安装django,报了“Django - deterministic=True requires SQLite 3.8.3 or higher upon running python manage.py runserver”。查了一番资料,记录下来。
参考链接:
参考链接: Django的web项目部署至Centos7服务器并配置域名访问.
参考链接: Centos7安装Python3和升级SQLite高版本.
参考链接: configure指定编译头文件和库文件路径.
安装要求
- CentOS 7.9
- Python 3.11.5
- Django 4.2.5
安装步骤
下载文件
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
wget https://www.sqlite.org/2023/sqlite-autoconf-3430000.tar.gz --no-check-certificate
wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz
准备环境
Centos 7可使用yum直接升级openssl-devel至1.0.2,正常可以直接装python3.11,如果无法导入ssl可采用下列编译安装openssl。
安装openssl
- 编译安装openssl
tar -zxvf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d
#./config --prefix=/usr/local/openssl no-zlib #不需要zlib
./config --prefix=/usr/local/openssl
显示结果
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1d (0x1010104fL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL file first) ***
*** ***
**********************************************************************
make && make install && make clean
- 配置openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
# 直接添加link,否则装包的时候经常找不到库,比如装uwsgi
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/local/lib64/libcrypto.so
# pip安装uwsgi时的报错信息。/usr/bin/ld: 找不到 -lssl/usr/bin/ld: 找不到 -lcryptocollect2: 错误:ld 返回 1*** error linking uWSGI ***
- 修改系统配置
#写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf.d/openssl-x86_64.conf
#使修改后的/etc/ld.so.conf生效
ldconfig -v
#查看所需的动态库
ldd /usr/local/openssl/bin/openssl
- 验证版本
openssl version -a
# 显示结果
OpenSSL 1.1.1d 10 Sep 2019
- 卸载系统安装openssl-devel以免版本冲突(如果系统已安装了)
yum remove openssl-devel
安装SQLite3
- 编译安装sqlite3
tar -zxvf sqlite-autoconf-3430000.tar.gz
cd sqlite-autoconf-3430000/
mkdir /usr/local/sqlite3.43
./configure --prefix=/usr/local/sqlite3.43/
make && make install
make clean
- 配置sqlite3
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
ln -s /usr/local/sqlite3.43/bin/sqlite3 /usr/bin/sqlite3
- 修改系统配置
#写入sqlite3库文件的搜索路径
echo "/usr/local/sqlite3.43/lib" > /etc/ld.so.conf.d/sqlite3.conf
#使修改后的/etc/ld.so.conf生效
ldconfig -v
#查看所需的动态库
ldd /usr/local/sqlite3.43/bin/sqlite3
- 验证版本
sqlite3 --version
# 显示结果
3.43.0 2023-08-24 12:36:59 0f80b798b3f4b81a7bb4233c58294edd0f1156f36b6ecf5ab8e83631d468778c (64-bit)
安装依赖包
yum -y install gcc gcc-c++ zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel expat-devel gdbm-devel make
安装Python
- 准备文件
tar -zxvf Python-3.11.5.tgz
cd Python-3.11.5
- 编译安装
# 需要配置LD_RUN_PATH指定依赖的搜索目录,LDFLAGS指定库文件路径,CPPFLAGS指定头文件路径
# 如果是编译安装了openssl,需要指定新版路径
./configure LD_RUN_PATH=usr/local/sqlite3.43/lib LDFLAGS="-L/usr/local/sqlite3.43/lib" CPPFLAGS="-I/usr/local/sqlite3.43/include" --prefix=/usr/local/python3.11 --with-openssl=/usr/local/openssl # 编译并安装 altinstall 不自动创建链接,需要手动创建,建议使用,保障多个版本共存。
make && make altinstall
make clean
make distclean
- 建立链接
ln -s /usr/local/python3.11/bin/python3.11 /usr/local/bin/
ln -s /usr/local/python3.11/bin/pip3.11 /usr/local/bin/
- 验证结果
python3.11
显示结果
Python 3.11.5 (main, Sep 4 2023, 19:12:17) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
5、补充说明
之前在Centos6.8上安装Python3.8遇到过死活不能import ssl
参考了https://blog.csdn.net/weixin_30951743/article/details/99891139 .最后成功安装,留做备用信息。
# cd openssl-1.1.1d
# ./config --prefix=$HOME/openssl shared zlib # 这里不同,装了shared zlib 和 $HOME路径
# make && make install# echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
# source $HOME/.bash_profile
# cat $HOME/.bash_profile # cd Python-3.8.3
# ./configure --prefix=/usr/local/python3.8 --with-openssl=$HOME/openssl
# make && make altinstall
# make clean
# make distclean
修改PIP源
指定公司内部源(生产环境不能访问外网)
pip3.11 config set global.trusted-host 10.100.224.65
pip3.11 config set global.index-url http://10.100.224.65/root/pypi/+simple/
pip3.11 config set search.index http://10.100.224.65/root/pypi/
或者直接修改文件也可以.
参考: https://www.cnblogs.com/cou1d/p/12403097.html.
mkdir ~/.pip
vim ~/.pip/pip.conf
增加以下内容(以阿里源为例)
[global]
timeout = 6000
index-url = http://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
临时指定源安装(以豆瓣源为例)
pip3.11 install pygame -i https://pypi.doubanio.com/simple
安装Django
- 创建沙箱
python3.11 -m venv /opt/dev/venv/django_test
- 安装Django
pip3.11 install django
pip3.11 list
显示结果
Package Version
------------------ ---------
asgiref 3.7.2
certifi 2023.7.22
charset-normalizer 3.2.0
Django 4.2.5
idna 3.4
pip 23.2.1
PyMySQL 1.1.0
requests 2.31.0
setuptools 65.5.0
sqlparse 0.4.4
urllib3 2.0.4
- 创建项目
cd /opt/dev
/opt/dev/venv/django_test/bin/django-admin startproject django_test
显示结果
(django_test) [root@centos7-18 django_test]# pwd
/opt/dev/django_test
(django_test) [root@centos7-18 django_test]# ls
db.sqlite3 django_test manage.py
- 启动项目
python3.11 manage.py runserver
显示结果
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
September 04, 2023 - 12:11:22
Django version 4.2.5, using settings 'django_test.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.相关文章:
CentOS 7上安装Python 3.11.5,支持Django
CentOS 7上安装Python 3.11.5,支持Django 今天安装django,报了“Django - deterministicTrue requires SQLite 3.8.3 or higher upon running python manage.py runserver”。查了一番资料,记录下来。 参考链接: 参考链接: Django的web项目…...
COMPFEST 15H「组合数学+容斥」
Problem - H - Codeforces 题意: 定义一个集合S为T的孩子是,对于S中的每一个元素x,在T中都能找到x1。 给定n,k,每一个集合中的元素x必须满足 1 < x < k 1<x<k 1<x<k且 c n t [ x ] < 1 cnt[x…...
react快速开始(三)-create-react-app脚手架项目启动;使用VScode调试react
文章目录 react快速开始(三)-create-react-app脚手架项目启动;使用VScode调试react一、create-react-app脚手架项目启动1. react-scripts2. 关于better-npm-runbetter-npm-run安装 二、使用VScode调试react1. 浏览器插件React Developer Tools2. 【重点】用 VSCode …...
【C++入门】string类常用方法(万字详解)
目录 1.STL简介1.1什么是STL1.2STL的版本1.3STL的六大组件1.4STL的缺陷 2.string类的使用2.1C语言中的字符串2.2标准库中的string类2.3string类的常用接口说明 (只讲解最常用的接口)2.3.1string类对象的常见构造2.3.2 string类对象的容量操作2.3.3string…...
大数据错误
question1 : Could not locate Hadoop executable: D:\hadoop-3.3.1\bin\winutils.exe - 【已解决】Could not locate executable E:\Hadoop\bin\winutils.exe in the Hadoop binaries._could not locate executable e:\hadoop-3.3.1\bin\wi_君问归期魏有期的博客-CSDN博客 q…...
【Node.js】Express-Generator:快速生成Express应用程序的利器
在Node.js世界中,Express是一个广泛使用的、强大的Web应用程序框架。它为开发者提供了一系列的工具和选项,使得创建高效且可扩展的Web应用程序变得轻而易举。然而,对于初学者来说,配置和初始化Express应用程序可能会有些困难。为了…...
SpringMVC的工作流程及入门
目录 一、概述 ( 1 ) 是什么 ( 2 ) 作用 二、工作流程 ( 1 ) 流程 ( 2 ) 步骤 三、入门实例 ( 1 ) 入门实例 ( 2 ) 静态资源处理 给我们带来的收获 一、概述 ( 1 ) 是什么 SpringMVC是一个基于Java的Web应用开发框架,它是Spring Framework的一部…...
logging.level的含义及设置 【java 日志 (logback、log4j)】
日志级别 trace<debug<info<warn<error<fatal 常用的有:debug,info,warn,error 通常我们想设置日志级别,会用到 logging.level.rootinfo logging.level设置日志级别,后面跟生效的区域。r…...
第 3 章 栈和队列(链栈)
1. 背景说明 链栈是指用单链表实现的栈,其存储结构为链式存储,实现类似于队列的链式实现,不过在插入元素时链栈在头部插入,而 链式队列在尾部插入,本示例中实现为带头结点的链栈,即栈顶元素为栈指针的下一…...
嵌入式面试-经典问题
1、c语言内存模型 2、C语言中的变量定义在什么地方 3、C语言代码如何运行的、关于栈的相关 4、指针函数与函数指针的区分 5、Static关键字的作用 6、const作用 7、进程与线程的区别 8、链表与数组的区别 9、#define宏定义与typedef的区别...
ZLMeidaKit在Windows上启动时:计算机中丢失MSVCR110.dll,以及rtmp推流后无法转换为flv视频流解决
场景 ZLMediaKit在Windows上实现Rtmp流媒体服务器以及模拟rtmp推流和http-flv拉流播放: ZLMediaKit在Windows上实现Rtmp流媒体服务器以及模拟rtmp推流和http-flv拉流播放_zlm流媒体服务器_霸道流氓气质的博客-CSDN博客 按照以上教程启动MediaServer.exe时提示&am…...
项目(智慧教室)第二部分,人机交互页面实现,
使用软件: 1.BmCvtST.exe 这是stm32Cubemx工程下的带三方软件。存在STemWin中。 作用: 图片变成.c文件格式。 2.CodeBlock 3.模拟器工程(具体请看上一节) 一。emWin环境的搭建 1.codeBlock下载 开源免费。 2.使用stm的C…...
【docker】docker的一些常用命令-------从小白到大神之路之学习运维第92天
目录 一、安装docker-ce 1、从阿里云下载docker-cer.epo源 2、下载部分依赖 3、安装docker 二、启用docker 1、启动docker和不启动查看docker version 2、启动服务查看docker version 有什么区别?看到了吗? 3、看看docker启动后的镜像仓库都有什…...
ubuntu18.04.6的安装教程
目录 一、下载并安装virtualbox virtualbox7.0.8版本的安装 二、Ubuntu的下载与安装 ubuntu18.04.6操作系统 下载 安装 一、下载并安装virtualbox VirtualBox是功能强大的x86和AMD64/Intel64虚拟化企业和家庭使用的产品。VirtualBox不仅是面向企业客户的功能极其丰富的高…...
小白的第一个RNN(情感分析模型)
平台:window10,python3.11.4,pycharm 框架:keras 编写日期:20230903 数据集:英语,自编,训练集和测试集分别有4个样本,标签有积极和消极两种 环境搭建 新建文件夹&am…...
华为云 存在部支持迁移的外键解决方法
DRS 检测出源端存在不支持的外键引用操作 MySQL、GaussDB(for MySQL)为源的全量增量或增量迁移、同步场景,以及MySQL、GaussDB(for MySQL)为源灾备场景 表1 源端存在不支持的外键引用操作 预检查项 源端存在不支持的外键引用操作。 描述 同步对象中存在包含CASC…...
C# winform控件和对象双向数据绑定
实现目的: 控件和对象双向数据绑定 实现结果: 1. 对象值 -> 控件值 2. 控件值 -> 对象值 using System; using System.Windows.Forms;namespace ControlDataBind {public partial class MainForm : Form{People people new People();public Mai…...
达梦8 在CentOS 系统下静默安装
确认系统参数 [rootlocalhost ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited【1048576(即 1GB)以上或 unlimited】 scheduling priority (-e) 0 file size (blocks, -f) unlimite…...
flink k8s sink到kafka报错 Failed to get metadata for topics
可能出现的3种报错 -- 报错1 Failed to get metadata for topics [...]. org.apache.kafka.common.errors.TimeoutException: Call-- 报错2 Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting to send the call. Call: fetchMetadata Heartbe…...
利用大模型MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7实现零样本分类
概念 1、零样本分类:在没有样本标签的情况下对文本进行分类。 2、nli:(Natural Language Inference),自然语言推理 3、xnli:(Cross-Lingual Natural Language Inference) ,是一种数据集,支持15种语言,数据集包含10个领域,每个领…...
3分钟看穿B站评论区:高效识别用户背景的精准秘诀
3分钟看穿B站评论区:高效识别用户背景的精准秘诀 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分,支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker 在B站评论…...
从RGB-D到3D语义分割:用Scannet v2的25k帧子集快速上手你的第一个模型
从RGB-D到3D语义分割:Scannet v2实战指南 在计算机视觉领域,3D场景理解正成为研究热点。Scannet v2作为包含丰富标注的RGB-D数据集,为初学者和专业开发者提供了理想的实验平台。本文将带您快速上手这个强大的工具集,从数据获取到模…...
FreeRTOS项目瘦身技巧:如何精简文件并优化工程结构(基于Keil环境)
FreeRTOS项目瘦身实战:Keil环境下的工程精简与结构优化 在嵌入式开发中,FreeRTOS因其轻量级和开源特性成为许多项目的首选RTOS。但随着项目迭代,工程往往会积累大量冗余文件,导致编译速度下降、存储空间浪费。本文将分享一套系统化…...
Wan2.1-umt5开发环境搭建:IDEA集成与调试技巧详解
Wan2.1-umt5开发环境搭建:IDEA集成与调试技巧详解 如果你是一名Java开发者,最近开始接触Wan2.1-umt5这类模型,可能会觉得有点无从下手。模型本身是用Python写的,各种脚本和命令行操作,跟咱们熟悉的Java开发环境完全是…...
ReactPy服务端渲染终极指南:如何在Python中构建现代Web应用
ReactPy服务端渲染终极指南:如何在Python中构建现代Web应用 【免费下载链接】reactpy Its React, but in Python 项目地址: https://gitcode.com/gh_mirrors/re/reactpy ReactPy是Python中构建用户界面的革命性库,让你无需JavaScript就能创建现代…...
如何通过猫抓cat-catch构建高效媒体资源管理系统
如何通过猫抓cat-catch构建高效媒体资源管理系统 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字化内容爆炸的时代,高效捕获和管理网页媒体资源已成为内容创作者、教育工作者和技术…...
[Android S] 深入解析statsd的log统计机制与实现
1. 认识Android系统中的statsd statsd是Android系统中一个非常重要的后台服务,它的主要职责是收集系统和应用的各类统计信息。你可能不知道,每次你在Android设备上执行操作时,statsd都在默默记录着各种数据。这些数据对于系统优化、性能分析和…...
告别打印烦恼:Anycubic i3 Mega定制Marlin固件的全方位升级方案
告别打印烦恼:Anycubic i3 Mega定制Marlin固件的全方位升级方案 【免费下载链接】Marlin-Ai3M 🖨 Marlin firmware optimized for the Anycubic i3 Mega 3D printer 项目地址: https://gitcode.com/gh_mirrors/ma/Marlin-Ai3M 场景引入࿱…...
避坑指南:解决多Livox雷达在ROS中TF树报错‘extrapolation into the past’的完整流程
避坑指南:解决多Livox雷达在ROS中TF树报错‘extrapolation into the past’的完整流程 当你在ROS系统中整合多个Livox雷达时,突然遭遇[WARN] Lookup would require extrapolation into the past的警告信息,Rviz中点云显示异常或TF树断裂&…...
STM32 HAL库里Systick中断优先级设成0x0F,你的定时器还准吗?
STM32 HAL库中Systick中断优先级设置对定时精度的影响与优化实践 在嵌入式开发领域,定时精度往往直接影响着系统性能与稳定性。许多开发者在使用STM32 HAL库时,可能从未深入思考过Systick中断优先级设置对系统定时精度的影响。本文将揭示一个容易被忽视但…...
