当前位置: 首页 > news >正文

102、【OS】【Nuttx】【周边】文档构建渲染:安装 Esbonio 服务器

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

接之前 blog
【OS】【Nuttx】【周边】文档构建渲染:reStructuredText 格式
之前 blog 分析了 reStructuredText 文件格式,和 VSCode 相关扩展的安装,其中介绍了 Esbonio 扩展,在 VSCode 中,安装了 Esbonio 扩展,还不能实时渲染 rst 文件,因为 Esbonio 扩展只是前端,需要安装 Esbonio 服务器才能进行渲染,下面分析 Esbonio 服务器

安装 Esbonio 服务器

首先,Esbonio 需要在 Python 环境中运行,终端输入

python3 --version

检查 python 版本 ok
在这里插入图片描述
终端输入

python3 -m pip --version

检查 python 包管理模块 pip 已安装 ok
在这里插入图片描述
终端输入

python3 -m pip install esbonio

尝试安装 esbnio 语言服务器,可以看到出现如下报错

adminpc@adminpc-M600:~/nuttx_pdt$ python3 -m pip install esbonio
error: externally-managed-environment× This environment is externally managed
╰─> To install Python packages system-wide, try apt installpython3-xyz, where xyz is the package you are trying toinstall.If you wish to install a non-Debian-packaged Python package,create a virtual environment using python3 -m venv path/to/venv.Then use path/to/venv/bin/python and path/to/venv/bin/pip. Makesure you have python3-full installed.If you wish to install a non-Debian packaged Python application,it may be easiest to use pipx install xyz, which will manage avirtual environment for you. Make sure you have pipx installed.See /usr/share/doc/python3.12/README.venv for more information.note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

下面来分析这个报错

在这里插入图片描述

  • 首先,这是 Python 3.12+ 在 Ubuntu/Debian 中引入的一项安全机制,防止 pip 随意修改系统级的 Python 环境,避免破坏系统依赖
  • Debian 是使用 Linux 内核和 GNU 工具集的开源计算机操作系统,而 Ubuntu 是基于 Debian 构建,在 Debian 的基础上增加了如图形化界面,系统配置工具等用户友好特性的桌面操作系统
  • Debian 系管理的 Python 环境(比如 Ubuntu,Debian 等)中,系统自带的 Python 会运行一些关键工具(比如 apt、systemd 启动脚本等),如果直接用 python3 -m pip install 安装第三方包,可能会覆盖系统依赖,导致系统不稳定或崩溃,所以从 Python 3.12 开始,Debian 团队启用了 PEP 668,禁止直接用 pip 安装包到系统 Python 环境

当然,错误提示也推荐了三种方法

  • 使用系统包管理器,比如 apt install python3-esbonio,这取决于 Ubuntu/Debian 是否提供了 esbonio 的 .deb 包,但目前看 esbonio 没有被收录进官方仓库,所以这条路走不通
  • 使用虚拟环境,最标准,最推荐的做法(这里先不用,后面有机会再尝试)
  • 使用 pipx 安装,pipx 是专门用来安装 Python 命令行应用的工具,会自动为每个应用创建独立的虚拟环境

这里 note 提示说可以加 --break-system-packages,虽然能强制安装,但很暴力,并且违背了系统设计原则,会破坏系统 Python 环境

下面为了不破坏系统 Python,下面再多加个选项 --user

python3 -m pip install --user esbonio --break-system-packages

虽然此时还有选项 --break-system-packages,但不会真的破坏系统,只是说服 pip 忽略 EXTERNALLY-MANAGED 错误

此时包安装在用户本地目录 ~/.local/lib/python3.12/site-packages,不影响系统其他用户,也不修改 /usr 目录,只是绕过了警告锁

查看本地目录 ~/.local/lib/python3.12/site-packages
在这里插入图片描述
可以看到 esbonio 已安装完毕

ok,今天先到这里,下篇 blog 继续

http://www.lryc.cn/news/622103.html

相关文章:

  • 医学名刊分析评介:医学前沿
  • CERT/CC警告:新型HTTP/2漏洞“MadeYouReset“恐致全球服务器遭DDoS攻击瘫痪
  • 神经网络、深度学习与自然语言处理
  • SpringCloud学习
  • ShardingSphere实战架构思考及优化实战问题
  • Delphi7:THashedStringList 详细用法指南
  • Gato:多模态、多任务、多具身的通用智能体架构
  • Unity中 terriaria草,在摄像机拉远的时候就看不见了,该怎么解决
  • 智能家居【home assistant】(二)-集成xiaomi_home
  • C++ #if
  • 什么是合并挖矿?
  • 重新定义城市探索!如何用“城市向导”解锁旅行新体验?
  • leetcode 刷题1
  • Chrome插件开发全指南
  • 【fwk基础】repo sync报错后如何快速修改更新
  • 集成电路学习:什么是Object Detection目标检测
  • Linux学习-软件编程(进程与线程)
  • Java生态中,实现MCP(Model Context Protocol)服务端工具开发主要的两大主流框架选择
  • 从前端框架到GIS开发系列课程(25)mapbox基础介绍以及加载第三方底图高德地图的实现
  • 数据结构初阶:排序算法(二)交换排序
  • ffmpeg-调整视频分辨率
  • 计算机视觉(opencv)实战五——图像平滑处理(均值滤波、方框滤波、高斯滤波、中值滤波)附加:视频逐帧平滑处理
  • Unity中的延迟调用方法详解
  • [微服务]ELK Stack安装与配置全指南
  • STM32在使用DMA发送和接收时的模式区别
  • 机器学习之 KNN 算法学习总结
  • YTHDC1介导MAFF核输出减轻肝细胞缺血再灌注氧化应激损伤
  • exec函数族、线程
  • 新手入门Makefile:FPGA项目实战教程(二)
  • 【计算机视觉与深度学习实战】02基于形态学的权重自适应图像去噪系统