佳期324 2025-11-22 13:24 采纳率: 64.7%
浏览 15
已结题

Linux中将 uv 与 Jupyter 结合使用 配置python的环境

在centos7的linux中,将 uv 与 Jupyter 结合使用 配置python的环境,需要超详细的步骤,还需要对于uv和Jupyter的介绍,求指教!

  • 写回答

4条回答 默认 最新

  • Juan_2012 2025-11-22 15:04
    关注

    回答参考qwen.

    在现代 Python 开发中,uv 作为一款新兴的高性能工具链,正逐渐成为开发者构建虚拟环境与管理依赖的新宠。而 Jupyter Notebook 凭借其交互式编程特性,在数据分析、机器学习和教学场景中广受欢迎。

    本文将带您从零开始,在 CentOS 7 系统上完整搭建一个基于 uv 的 Python 环境,并成功运行 Jupyter Notebook,支持远程访问,适用于科研、学习或轻量级开发项目。


    🧩 一、什么是 uv?它为什么这么快?

    uv 是由 Astral 团队使用 Rust 编写的 超高速 Python 包安装器和虚拟环境管理器,目标是替代传统的 pip + virtualenv 组合。

    ✅ uv 的核心优势

    特性描述
    ⚡ 极致速度安装包比 pip 快 10~100 倍(得益于二进制缓存)
    💾 内置 venv 支持uv venv 可直接创建隔离环境
    📦 兼容性强支持 requirements.txtpyproject.toml 等格式
    🌐 离线安装缓存命中时无需网络连接
    🔁 行为一致跨平台行为统一,避免“我本地能跑”的问题

    📌 官方 GitHub:https://github.com/astral-sh/uv

    📌 技术原理简析:

    uv 使用预编译的 universal wheels 并建立本地索引数据库,跳过了 pip 中频繁的元数据解析和重复下载过程,因此性能大幅提升。

    $$
    \text{传统流程:} \quad \text{resolve} \rightarrow \text{download} \rightarrow \text{build} \rightarrow \text{install}
    $$
    $$
    \text{uv 流程:} \quad \text{resolve} \xrightarrow{\text{cache hit}} \text{install}
    $$


    🧪 二、什么是 Jupyter Notebook?

    Jupyter 是一个基于 Web 的交互式计算环境,允许用户以“笔记本”形式编写和执行代码、插入文字说明、图表和公式。

    主要用途包括:

    • 数据清洗与分析(Pandas)
    • 可视化展示(Matplotlib/Seaborn)
    • 教学演示(Markdown + LaTeX 公式)
    • 实验记录(保存中间结果)

    📌 官网:https://jupyter.org/


    🎯 目标清单:我们要完成什么?

    步骤内容
    1在 CentOS 7 上安装 Python 3.11
    2安装 uv 工具
    3使用 uv 创建虚拟环境 .venv
    4在环境中安装 jupyter 及常用库
    5配置 Jupyter 支持远程访问
    6启动服务并通过浏览器访问
    7(可选)设置开机自启

    🛠️ 第一步:升级系统并安装 Python 3.11

    CentOS 7 默认只提供 Python 2.7,无法满足现代开发需求,我们需要通过 SCL(Software Collections)来引入新版 Python。

    1. 更新系统源并安装基础工具

    sudo yum update -y
    sudo yum install epel-release wget curl tar gzip vim net-tools -y
    

    2. 安装 Software Collections 源

    sudo yum install centos-release-scl -y
    

    3. 安装 Python 3.11

    sudo yum install rh-python311 -y
    

    4. 启用 Python 3.11 环境(每次登录自动生效)

    echo 'source /opt/rh/rh-python311/enable' >> ~/.bashrc
    source ~/.bashrc
    

    5. 验证版本

    python --version
    # 输出应为: Python 3.11.x
    pip --version
    # 查看是否指向 rh-python311 路径
    

    ⚠️ 注意事项:

    • 所有后续操作都必须在此环境下进行
    • 若未启用 rh-python311,会误用系统默认的 Python 2.7

    🧰 第二步:安装 uv(Ultra-fast Python Tool)

    目前 uv 尚未进入 PyPI 主流渠道(截至 2025 年初),推荐使用官方发布的二进制文件安装。

    1. 下载 uv Linux 版本(x86_64 GNU)

    curl -L https://github.com/astral-sh/uv/releases/latest/download/uv-linux-x86_64-gnu -o /usr/local/bin/uv
    

    🔗 最新版本地址:https://github.com/astral-sh/uv/releases

    2. 添加执行权限

    sudo chmod +x /usr/local/bin/uv
    

    3. 验证安装

    uv --version
    # 示例输出: uv 0.2.4
    

    🐍 第三步:使用 uv 创建虚拟环境并安装 Jupyter

    我们将在家目录下创建一个专用项目文件夹。

    1. 创建项目目录

    mkdir ~/jupyter-env && cd ~/jupyter-env
    

    2. 使用 uv 创建虚拟环境

    uv venv .venv
    

    这会在当前目录生成 .venv 文件夹,包含独立的 Python 解释器和包存储路径。

    3. 激活虚拟环境

    source .venv/bin/activate
    

    激活后命令行前会出现 (.venv) 提示符:

    (.venv) [user@localhost jupyter-env]$
    

    4. 使用 uv pip 安装 Jupyter 及相关库

    uv pip install \
        jupyter \
        notebook \
        pandas \
        numpy \
        matplotlib \
        scipy \
        ipykernel
    

    ✅ 包作用说明表:

    包名用途
    jupyter核心框架
    notebook经典 Web UI 界面
    pandas / numpy数据处理基石
    matplotlib绘图支持
    ipykernel让 Jupyter 能运行 Python 代码

    💡 提示:你也可以加上 seabornscikit-learn 等用于更复杂的分析任务。


    🖥️ 第四步:配置 Jupyter 支持远程访问

    默认情况下,Jupyter 只监听本地回环地址 127.0.0.1,我们需要修改配置使其对外提供服务。

    1. 生成默认配置文件

    jupyter notebook --generate-config
    

    生成路径为:

    ~/.jupyter/jupyter_notebook_config.py
    

    2. 设置登录密码(推荐方式)

    jupyter notebook password
    

    输入两次密码(如 myjupyter123),系统会将其哈希加密后保存到:

    ~/.jupyter/jupyter_server_config.json
    

    这样下次启动就不需要手动输入 token。


    3. 编辑配置文件支持外网访问

    打开配置文件:

    vim ~/.jupyter/jupyter_notebook_config.py
    

    添加以下内容:

    c = get_config()
    
    # 允许任意 IP 访问
    c.NotebookApp.ip = '0.0.0.0'
    
    # 不自动打开浏览器
    c.NotebookApp.open_browser = False
    
    # 指定端口(默认 8888)
    c.NotebookApp.port = 8888
    
    # 启用密码认证
    c.NotebookApp.password_required = True
    
    # 设置工作目录(可选)
    c.NotebookApp.notebook_dir = '/home/your_username/jupyter-env'
    
    # 允许远程访问
    c.NotebookApp.allow_remote_access = True
    
    # 允许跨域请求
    c.NotebookApp.allow_origin = '*'
    

    📌 请将 your_username 替换为你的实际用户名(可通过 whoami 查看)。


    🚀 第五步:启动 Jupyter Notebook

    确保已激活虚拟环境:

    source .venv/bin/activate
    

    启动服务:

    jupyter notebook
    

    看到如下输出即表示成功:

    [I 14:32:10.456 NotebookApp] Serving notebooks from local directory: /home/user/jupyter-env
    [I 14:32:10.456 NotebookApp] The Jupyter Notebook is running at:
    [I 14:32:10.456 NotebookApp] http://0.0.0.0:8888/
    

    🌐 第六步:通过浏览器访问 Jupyter

    在你本地电脑的浏览器中输入:

    http://<服务器IP>:8888
    

    例如:

    http://192.168.1.100:8888
    

    然后输入你在 jupyter notebook password 中设置的密码即可登录!

    ✅ 成功画面:出现文件列表界面,点击右上角【New】→【Python 3】可新建一个 Notebook。


    🔒 安全建议与常见问题

    ✅ 防火墙开放端口(重要!)

    如果无法访问,请检查防火墙是否放行了 8888 端口:

    sudo firewall-cmd --permanent --add-port=8888/tcp
    sudo firewall-cmd --reload
    

    查看是否生效:

    sudo firewall-cmd --list-ports | grep 8888
    

    ❌ 常见错误及解决方案

    错误现象可能原因解决方法
    command not found: jupyter未激活虚拟环境运行 source .venv/bin/activate
    页面提示 “Token required”但没看到 token 日志改用密码登录(前提是设置了密码)
    无法连接服务器防火墙/安全组未放行开放 8888 端口
    启动时报错缺少模块pip 安装失败改用国内镜像源:uv pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyter

    🚀 进阶技巧:让 Jupyter 开机自启(systemd 服务)

    如果你希望服务器重启后 Jupyter 自动运行,可以配置 systemd 服务。

    1. 创建服务文件

    sudo vim /etc/systemd/system/jupyter.service
    

    写入以下内容(请替换用户名):

    [Unit]
    Description=Jupyter Notebook Service
    After=network.target
    
    [Service]
    Type=simple
    User=your_username
    Group=your_username
    WorkingDirectory=/home/your_username/jupyter-env
    ExecStart=/bin/bash -c "source /home/your_username/jupyter-env/.venv/bin/activate && jupyter notebook"
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    

    2. 启用并启动服务

    sudo systemctl daemon-reexec
    sudo systemctl enable jupyter
    sudo systemctl start jupyter
    

    3. 查看状态

    sudo systemctl status jupyter
    

    📊 总结:关键步骤一览表

    步骤命令摘要
    安装 Python 3.11yum install rh-python311
    激活 Python 环境source /opt/rh/rh-python311/enable
    安装 uvcurl -L ... -o /usr/local/bin/uv && chmod +x
    创建虚拟环境uv venv .venv
    激活环境source .venv/bin/activate
    安装 Jupyteruv pip install jupyter notebook ...
    生成配置jupyter notebook --generate-config
    设置密码jupyter notebook password
    修改配置支持远程编辑 jupyter_notebook_config.py
    开放防火墙firewall-cmd --add-port=8888/tcp
    启动服务jupyter notebook

    如果对您有帮助请点一个赞,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月22日