编译安装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
相关推荐
科雷软件测试2 小时前
Python中itertools.product:快速生成笛卡尔积
开发语言·python
派大星~课堂5 小时前
【力扣-142. 环形链表2 ✨】Python笔记
python·leetcode·链表
Thomas.Sir5 小时前
第一章:Agent智能体开发实战之【初步认识 LlamaIndex:从入门到实操】
人工智能·python·ai·检索增强·llama·llamaindex
ZTL-NPU5 小时前
Jetbrains开发ros
ide·python·pycharm·编辑器·ros·clion
环黄金线HHJX.6 小时前
TSE框架配置与部署详解
开发语言·python
前端摸鱼匠6 小时前
YOLOv11与OpenCV 联动实战:读取摄像头实时视频流并用 YOLOv11 进行检测(三)
人工智能·python·opencv·yolo·目标检测·计算机视觉·目标跟踪
Pyeako7 小时前
PyQt5 + PaddleOCR实战:打造桌面级实时文字识别工具
开发语言·人工智能·python·qt·paddleocr·pyqt5
喝凉白开都长肉的大胖子8 小时前
在 Matplotlib 中fontweight一般怎么设置
python·matplotlib
HAPPY酷9 小时前
Python高级架构师之路——从原理到实战
java·python·算法
Thomas.Sir9 小时前
第十三章:RAG知识库开发之【GraphRAG 从基础到实战】
python·ai·rag·graphrag