编译安装python(鲁班猫cat1,rk3566)

编译安装python(鲁班猫cat1,rk3566)

一、确认系统架构和版本(确保适配)

bash 复制代码
# 查看架构(输出应为aarch64,即ARM64)
uname -m
# 查看系统版本
cat /etc/os-release

二、安装编译 Python3.10 的依赖

bash 复制代码
# 更新源(确保依赖包能找到)
sudo apt update -y

# 安装编译核心依赖
sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev \
libnss3-dev libssl-dev libreadline-dev libffi-dev wget libbz2-dev \
libsqlite3-dev tk-dev liblzma-dev libgmp-dev libmpfr-dev libmpc-dev \
libc6-dev gcc-aarch64-linux-gnu

# 安装依赖库(ARM64编译必需)
sudo apt install -y libpython2-dev python3-distutils

三、下载 Python3.10 源码

bash 复制代码
# 下载源码包(国内镜像,速度更快)
wget https://mirrors.huaweicloud.com/python/3.10.14/Python-3.10.14.tgz

# 解压源码包
tar -xf Python-3.10.14.tgz
cd Python-3.10.14

四、编译并安装 Python3.10

bash 复制代码
# 配置编译参数(核心:--prefix指定安装路径,--enable-optimizations优化性能)
./configure --prefix=/usr/local/python3.10 \
            --enable-optimizations \
            --with-ssl \
            --enable-shared \
            --build=aarch64-linux-gnu

# 编译(-j后接CPU核心数,鲁班猫通常是4核,写4;如果是2核写2,加快编译)
make -j4

# 安装(不会覆盖系统Python)
sudo make altinstall

五、验证 Python3.10 安装结果

bash 复制代码
# 查看Python3.10版本(指定安装路径)
/usr/local/python3.10/bin/python3.10 --version
# 正常输出:Python 3.10.14

# 查看pip3.10版本
/usr/local/python3.10/bin/pip3.10 --version

六、配置环境

bash 复制代码
# 临时生效(当前终端)
export PATH=/usr/local/python3.10/bin:$PATH

# 永久生效(所有终端,推荐)
echo 'export PATH=/usr/local/python3.10/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 验证:直接输入python3.10即可调用
python3.10 --version
pip3.10 --version

七、问题

  • 执行/usr/local/python3.10/bin/python3.10 --version命令显示 /usr/local/python3.10/bin/python3.10: error while loading shared libraries: libpython3.10.so.1.0: cannot open shared object file: No such file or directory
1、确认文件是否存在
bash 复制代码
# 精准搜索Python安装目录下的共享库文件
find /usr/local/python3.10 -name "libpython3.10.so*" 2>/dev/null

# 示例正常输出(有这个文件才说明编译成功生成了共享库):
# /usr/local/python3.10/lib/libpython3.10.so
# /usr/local/python3.10/lib/libpython3.10.so.1.0
# /usr/local/python3.10/lib/libpython3.10.so.3.10
  1. 文件存在
bash 复制代码
# 1. 先临时指定库路径,验证是否能运行(快速定位问题)
export LD_LIBRARY_PATH=/usr/local/python3.10/lib:$LD_LIBRARY_PATH
# 测试Python是否能运行
/usr/local/python3.10/bin/python3.10 --version

# 2. 如果临时指定后能运行,修复永久配置(重新执行,确保生效)
# 先删除可能写错的配置文件
sudo rm -f /etc/ld.so.conf.d/python3.10.conf
# 重新写入正确路径
sudo sh -c 'echo "/usr/local/python3.10/lib" > /etc/ld.so.conf.d/python3.10.conf'
# 强制更新共享库缓存(加-v看详细输出,确认路径被扫描)
sudo ldconfig -v | grep python3.10

# 3. 验证配置是否生效(能查到库文件说明配置成功)
ldconfig -p | grep libpython3.10

# 4. 重启终端(或重新登录),再次测试
/usr/local/python3.10/bin/python3.10 --version
  1. 文件不存在
bash 复制代码
# 1. 回到Python源码目录(如果已退出,重新进入)
cd Python-3.10.14

# 2. 清理上次编译的残留文件(关键,避免旧配置干扰)
make clean
sudo make distclean

# 3. 重新配置(简化参数,ARM64先去掉优化,确保共享库生成)
./configure --prefix=/usr/local/python3.10 \
            --with-ssl \
            --enable-shared \
            --build=aarch64-linux-gnu \
            CFLAGS=-fPIC  # ARM64强制生成位置无关代码,解决共享库生成问题

# 4. 单核心编译(ARM板卡避免内存不足,慢但稳定)
make -j1

# 5. 重新安装
sudo make altinstall

# 6. 再次检查文件是否生成
find /usr/local/python3.10 -name "libpython3.10.so*" 2>/dev/null
相关推荐
杨女士YRJ9 分钟前
python+pytest+01
python·pytest
鸽芷咕16 分钟前
Mu Editor 鸿蒙 PC 适配全记录:用 Qt 与嵌入式 CPython 重建教学型 Python IDE
python·qt·harmonyos
微软技术分享33 分钟前
基于 HuggingFace Tokenizers 训练自定义分词器
python·ubuntu·大模型·huggingface
gf132111141 分钟前
python_调用远程服务器上的openclaw
服务器·python·php
lbb 小魔仙43 分钟前
Jupyter Notebook / Lab 深度配置指南:插件 + 内核 + 远程访问 + 容器化部署
ide·python·jupyter
2601_962300471 小时前
python是跨平台的吗
python·开源·跨平台·面向对象·
2401_844582951 小时前
软件架构设计与持续重构:模块化开发实战建
python
东莞市云毅网络有限公司1 小时前
用 SQLite FTS5 给企业知识库做问答检索原型:中文二元切分与 BM25 排序
python·sqlite·自动化运维·geo·数据监测
承渊政道1 小时前
PR-Agent鸿蒙PC适配全记录:从Python服务端代理到ArkTS原生评审客户端
python·华为·代理模式·agent·harmonyos·pc端
Thomas.Sir1 小时前
第49课:TensorFlow|项目性能调优全方案【训练提速、推理提速、资源占用优化】
人工智能·python·tensorflow