logo

openEuler 下 Python 与 Jupyter AI 开发环境实战指南

作者:JC2026.11.07 01:17浏览量:0

简介:本文面向 openEuler 用户,系统讲解从系统准备、Python 源码编译、虚拟环境管理到 Jupyter 交互式开发环境的完整搭建流程。读者可获得一套可复制的环境配置方案,避免依赖冲突与版本混乱,并了解国内镜像加速、内核隔离等生产级实践技巧。

1. 环境准备与基础依赖

在 openEuler 上构建 AI 开发环境,首先需要确保操作系统处于干净、可复现的状态。本文假设使用 openEuler 25.09 版本,硬件内存不低于 4GB,推荐 6GB 以上以支撑 Jupyter 内核与数据分析任务;磁盘可用空间至少 40GB,便于后续安装深度学习框架与数据集。执行操作的用户应具备 sudo 权限。

1.1 确认系统版本与内核信息

开始安装前,先获取系统基础信息,便于后续排查兼容性问题。执行以下命令查看发行版标识与内核版本:

  1. cat /etc/os-release
  2. uname -r

/etc/os-release 文件中包含系统名称、版本号与 ID 字段,可用于判断当前环境是否为目标版本。uname -r 输出的内核版本信息在编译某些需要内核头文件的扩展模块时非常重要。建议将这两个输出保存到日志中,以便后续出现编译错误时回溯。

1.2 更新软件包索引与系统组件

openEuler 使用 dnf 作为包管理器。为了让本地软件源元数据与远端一致,先刷新缓存:

  1. sudo dnf makecache
  2. sudo dnf update -y

makecache 会重新下载软件仓库的元数据,而 update -y 会静默升级所有可更新软件包。该过程耗时取决于网络带宽和当前系统差异程度,通常在 3~5 分钟内完成。更新后建议重启一次系统,确保内核或关键库的变更被正确加载。若生产环境不便重启,也可先跳过重启,但后续编译如遇头文件不一致应优先考虑重启。

1.3 安装编译工具链与 Python 依赖库

Python 源码编译需要完整的开发工具链和一系列底层库。openEuler 提供了开发工具组,可一键安装 gcc、g++、make 等常用构建工具:

  1. sudo dnf groupinstall "Development Tools" -y

随后安装编译 CPython 所必需的系统依赖。这些库为 Python 的不同标准模块提供底层支撑:

  1. sudo dnf install -y \
  2. zlib-devel \
  3. bzip2-devel \
  4. openssl-devel \
  5. ncurses-devel \
  6. sqlite-devel \
  7. readline-devel \
  8. tk-devel \
  9. gdbm-devel \
  10. libffi-devel \
  11. xz-devel \
  12. libuuid-devel \
  13. wget \
  14. curl \
  15. git \
  16. vim

各依赖作用如下:

  • zlib-devel:为 zlib 压缩模块提供头文件,缺失会导致 gzip 相关功能不可用。
  • bzip2-devel:对应 bz2 压缩支持,处理 .tar.bz2 等格式时必需。
  • openssl-devel:提供加密与 HTTPS 支持,pip 下载包依赖该库。
  • ncurses-devel:终端交互库,缺失会影响 Python 交互式解释器的方向键等功能。
  • sqlite-devel:轻量级数据库支持,Jupyter 与部分数据分析库可能用到。
  • readline-devel:命令行编辑与历史记录支持。
  • tk-devel:Tkinter GUI 模块依赖,部分绘图工具需要。
  • gdbm-devel:Unix 数据库接口,影响 dbm 模块。
  • libffi-devel:外部函数接口,ctypes 模块依赖。
  • xz-devel:LZMA 压缩支持。
  • libuuid-devel:UUID 生成支持。
  • wget、curl、git、vim:基础网络与编辑工具,后续获取源码和配置环境会反复使用。

安装完成后验证核心工具是否可用:

  1. gcc --version
  2. git --version
  3. curl --version

确认版本号能正常输出即可进入下一步。若某命令未找到,一般是安装时网络中断或软件源配置异常,可重新执行安装命令。

2. 配置国内镜像源加速

openEuler 默认软件源在部分网络环境下访问速度较慢,影响安装效率。可通过替换为国内镜像站改善体验。当前主流做法是编辑 /etc/yum.repos.d/ 目录下的仓库配置文件,将 baseurl 和 metalink 指向国内可访问的镜像地址。

配置前建议备份原文件:

  1. sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak

随后根据实际网络环境选择镜像源,将对应 repo 文件中的 baseurl 修改为镜像站地址。完成修改后执行 sudo dnf makecache 验证元数据是否能正常刷新。若刷新成功且速度明显提升,则说明镜像配置生效。

对于 Python 包管理工具 pip,同样可以配置国内镜像。编辑 ~/.pip/pip.conf 文件并添加以下内容:

  1. [global]
  2. index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  3. trusted-host = pypi.tuna.tsinghua.edu.cn

配置后使用 pip install 时会自动从镜像获取包,显著缩短下载时间。需要注意的是,不同镜像源的同步延迟可能存在差异,若遇到包版本缺失,可临时指定官方源重试。

3. Python 源码编译与安装

虽然可以通过包管理器直接安装 Python,但源码编译能更灵活地控制版本和编译选项,适用于需要特定 Python 版本或定制能力的 AI 开发场景。

3.1 获取源码包

从 Python 官方发布渠道下载目标版本源码。以 Python 3.11 为例,可使用 wget 下载:

  1. wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz
  2. tar xzf Python-3.11.9.tgz
  3. cd Python-3.11.9

下载前请确认目标版本的发布状态,避免使用已停止维护的旧版本。AI 生态对 Python 版本较为敏感,建议选择近两年发布的稳定版本。

3.2 配置编译参数

Python 使用 configure 脚本检测系统环境并生成 Makefile。推荐启用共享库与优化选项:

  1. ./configure --enable-optimizations --enable-shared --prefix=/usr/local/python3.11
  • --enable-optimizations:启用 PGO(Profile Guided Optimization)与 LTO,可提升运行时性能,但编译时间会明显增加。
  • --enable-shared:生成共享库,供其他程序嵌入 Python 使用。
  • --prefix:指定安装路径,将不同版本隔离在不同目录,避免覆盖系统默认 Python。

3.3 编译与安装

执行 make 编译。若机器为多核 CPU,可使用 -j 参数并行编译加快速度:

  1. make -j$(nproc)
  2. sudo make altinstall

使用 altinstall 而非 install,是为了避免创建 /usr/bin/python 软链接覆盖系统自带 Python,降低系统工具受影响的风险。安装完成后验证:

  1. /usr/local/python3.11/bin/python3.11 --version

能看到正确版本号即表示安装成功。系统原有 Python 不会受到任何影响,两者可并存。

4. 虚拟环境与 Anaconda 类发行版管理

在 AI 开发中,不同项目对依赖版本要求可能互相冲突。虚拟环境是解决这一问题的标准手段。Python 自带的 venv 模块可创建轻量级的隔离环境:

  1. /usr/local/python3.11/bin/python3.11 -m venv ~/venvs/ai_env
  2. source ~/venvs/ai_env/bin/activate

激活后命令行提示符会显示环境名称,此时安装的包均隔离在该环境内。退出环境执行 deactivate 即可。

对于需要更完整科学计算生态的场景,可选择 Anaconda 或 Miniconda 类发行版。这类工具提供了包管理、环境管理和预编译的科学计算包,减少源码编译工作量。安装时下载对应安装脚本,执行后按提示确认许可协议与安装路径。安装完成后使用 conda create -n ai python=3.11 创建环境,conda activate ai 激活。

Anaconda 类工具的优势在于:它同时管理 Python 版本与非 Python 二进制依赖,例如 MKL 数学库、CUDA 运行时打包等,省去手动安装系统库的步骤。缺点则是安装体积较大,且环境激活逻辑与 shell 绑定较深。用户可根据实际需求在 venv 与 conda 之间选择,也可混用。

5. Jupyter 交互式开发环境部署

Jupyter 是数据科学与 AI 开发的常用交互式工具,支持代码、文档与可视化混合编排。在已激活的虚拟环境中安装:

  1. pip install jupyterlab notebook

JupyterLab 是下一代 Web 界面,功能更现代;Notebook 提供经典界面,两者可同时安装。安装完成后生成配置文件:

  1. jupyter lab --generate-config

配置文件默认位于 ~/.jupyter/jupyter_lab_config.py。生产环境建议修改以下选项:

  • c.ServerApp.ip = '0.0.0.0':允许远程访问。
  • c.ServerApp.port = 8888:指定监听端口。
  • c.ServerApp.open_browser = False:服务器环境禁止自动打开浏览器。
  • c.ServerApp.password = 'sha1:...':设置访问密码,使用 jupyter lab password 命令生成。

启动服务:

  1. jupyter lab --no-browser

服务启动后监听指定端口,通过浏览器输入服务器 IP 和端口即可访问。若启用了防火墙,需同时开放对应端口。为提高安全性,建议在生产环境使用 HTTPS 反向代理,并避免直接暴露未加密的 Jupyter 服务。

6. AI 开发常用库安装与环境验证

进入 Jupyter 环境后,可根据任务需求安装常用的科学计算与数据分析库。以 numpy、pandas、matplotlib 为例:

  1. pip install numpy pandas matplotlib scikit-learn

安装完成后,在 Jupyter Notebook 中运行以下代码验证环境:

  1. import numpy as np
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. print("NumPy version:", np.__version__)
  5. print("Pandas version:", pd.__version__)
  6. data = pd.DataFrame({'x': range(10), 'y': [i**2 for i in range(10)]})
  7. data.plot(x='x', y='y', kind='line')
  8. plt.show()

若能正常输出版本号并绘制曲线,说明基础 AI 开发环境已经就绪。后续可根据具体任务安装深度学习框架、自然语言处理库或计算机视觉包。建议在每次大版本变更前记录当前环境依赖,可使用 pip freeze > requirements.txt 导出清单,便于在另一台机器上复现环境。

通过上述步骤,openEuler 用户可以获得一套稳定、隔离且便于维护的 AI 开发环境。整个流程强调可复现性与模块化,既适用于个人学习实验,也能满足企业级开发环境的规范要求。

发表评论

活动