编译安装Python3.11.0(包含ssl),并将py打包成.so文件

本文以centos7.9为例

安装编译python

1、创建文件夹用于放下载的压缩包

mkdir -p /usr/local/mydev/python

2、解压python3.11.0

tar -zxvf Python-3.11.0.tgz

 3、准备编译环境

yum -y install gcc make zlib zlib-devel libffi libffi-devel readline-devel openssl-devel openssl11 openssl11-devel

 4、安装openssl11,后期的pip3安装网络(https)相关模块需要用到ssl模块

export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)

 5、进入python3.11.0的解压目录

cd Python-3.11.0

 6、编译安装

./configure --prefix=/usr/local/mydev/python/python3 --with-ssl

make && make install

7、创建软连接

ln -s /usr/local/mydev/python/python3/bin/python3.11 /usr/local/bin/python3ls 

8、配置环境变量(用于快速使用pip3)

 vi ~/.bash_profile  

# 按i进入编辑模式

export PYTHON_HOME=/usr/local/mydev/python/python3

export PATH=$PYTHON_HOME/bin:$PATH

# 先按esc 然后输入:wq 退出编辑

#执行source ~/.bash_profile命令使配置生效

source ~/.bash_profile

 9、查看python3.11.0是否成功安装及能否正常使用

查看版本号

python3 --version

使用

 python3

                                                                分割线

=========================================================================

将py打包成.so

1、安装必要的工具

安装gcc

sudo yum install python3-dev gcc

安装Cython

pip3 install cython

 2、准备需要加密的脚本

加密脚本

# 创建 setup.py

vi setup.py

# 按i进入编辑模式

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize(["test.py"]))

# 先按esc 然后输入:wq 退出编辑

 3、创建测试代码

# 创建 test.py

vi test.py

# 按i进入编辑模式

from test import add
a = add(2,2)
print(a)

# 先按esc 然后输入:wq 退出编辑

4、打包成.so

1、直接使用命令去打包

 python3 setup.py build_ext --inplace

2、使用脚本去自动打包

2.1创建build_ext.sh脚本

vi build_ext.sh

2.2准备脚本文件(将脚本复制进build_ext.sh)

#!/bin/bash

# 检查python3是否存在
if ! command -v python3 &> /dev/null; then
  echo "python3 命令不存在,请确保已安装Python 3。"
  exit 1
fi

# 检查python3是否指向Python 3.11.0
PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}')
if [[ "$PYTHON_VERSION" != "3.11.0" ]]; then
  echo "python3 指向的版本不是 3.11.0,当前版本是 $PYTHON_VERSION。"
  exit 1
fi

# 检查当前目录下是否存在setup.py文件
if [ ! -f "setup.py" ]; then
  echo "当前目录下没有找到setup.py文件,请确保你在正确的目录下运行此脚本。"
  exit 1
fi

# 运行build_ext命令
python3 setup.py build_ext --inplace

# 检查命令是否成功执行
if [ $? -eq 0 ]; then
  echo "build_ext 命令执行成功!"
else
  echo "build_ext 命令执行失败,请检查错误信息。"
  exit 1
fi

2.3赋予脚本执行权限

chmod +x build_ext.sh

2.4运行脚本

./build_ext.sh 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king123t

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值