{
    "version" : "https://jsonfeed.org/version/1.1",
    "title" : "CQCQ收到未",
    "description": "CQ 的个人生活志",
    "home_page_url" : "https://xuchunqiu.com/",
    "feed_url" : "https://xuchunqiu.com/index.feed",
    "icon" : "https://xuchunqiu.com/apple-touch-icon.png",
    "favicon" : "https://xuchunqiu.com/favicon.ico",
    "author" : {
        "name" : "xuchunqiu",
        "avatar": "https://xuchunqiu.com/avatar.jpg"
    },
    "items" : [
    {
        "title" : "2024年：世界徐徐展开",
        "date_published" : "2025-01-01T14:14:19+08:00",
        "date_modified" : "2025-07-18T11:37:44+08:00",
        "id" : "https://xuchunqiu.com/this-cute-world/",
        "url" : "https://xuchunqiu.com/this-cute-world/",
        "summary": "2024 是我毕业的第三个年头，我尝试下笔了无数次都不知道该如何记录这一年。选择过、不解过、愤怒过，这或许也算一种难得的成长？今年出现了颇多脑子里灵光闪现的时刻：「喔！原来 ta 当时是因为这个感觉才会做出那样的事！」。就如在学校中我们通过反复练习来掌握知识，当下则是需要不断经历来理解更加广大世界的时候了。\n",
        "content_html" : "\u003cp\u003e2024 是我毕业的第三个年头，我尝试下笔了无数次都不知道该如何记录这一年。选择过、不解过、愤怒过，这或许也算一种难得的成长？今年出现了颇多脑子里灵光闪现的时刻：「喔！原来 ta 当时是因为这个感觉才会做出那样的事！」。就如在学校中我们通过反复练习来掌握知识，当下则是需要不断经历来理解更加广大世界的时候了。\u003c/p\u003e\n\u003cp\u003e今年是 AI 平民化的一年，很高兴现在学这个专业的学生终于不会再被家长问「你将来可以做什么工作」这种问题了，但也不由得担心 LLM 这条耀眼的技术路线背后的大数据、高算力依赖会成为科班学子在实践阶段的桎梏。至于 AI 应用这边，辅助编程工具 Coplit 确实对工作起到不小的帮助，只是在处理较为宏观和抽象的问题时它显得能力不足。这类工具会替代程序员吗？这里给出我的看法。首先 AI （Artificial Intelligents，即人工智能）实在是个烫嘴的词，它里面包含了太多概念，使用的场景通常是面向非技术背景受众；另一方面我非常怀疑当人们顺口讲出「AI」的时候往往轻视了这里的「人工/手工」。AI 的训练过程在一开始会戏称为「炼丹」——不知道这些输入数据是否有效、不知道网络结构是否合理、不知道训练出的模型是否符合预期。如果炼出了仙丹，恭喜你！请接着开始模型可解释性的探索吧！如果不成功，调整一番配方再试试看（这是我过于夸张的描述，现实中「炼丹师」们往往会站在前人的基础上这里改一改、那里动一动，尽量尝试解释方法与结果的关联性）。在前司了解过化学专业同事的科研之路的艰辛（例如非常好的实验无法复现，最后查出是第一次使用的药品过期了）后，不免感叹在计算机里炼丹要轻松多了，因为计算机环境是完全可控、任何实验都可以轻松复现的，确定的输入必然是确定的输出。不知你是否发现，这里暗藏了一道天然的鸿沟——永远无法把物理现实和人类权衡全部代入到虚拟世界之中。人工整理的输入数据可能遗漏掉实际决策时的关键信息或关键信息无法量化；AI 的最优答案如果叠加上使用者的资源、性格、价值观可能成为次优解或错误答案。在人机交互没有翻天覆地般变革之前，AI永远不可能掌舵。\u003c/p\u003e\n\u003cp\u003e今年之前我一直以为生活和程序没什么两样——确定的因得到的总能确定的果，完全忽视了人的复杂多样，这里的人也包括我自己。比如今年我发现自己的感受能力空前增长，就好像游戏里的 NPC 突然被注入人性，开始感受到自己的身体和精神。以前的我感觉特别弱，不知道怎么搭衣服、不明白什么时候该休息、尝不出大锅饭和餐馆的区别、气氛上该哭时泪腺说不行。在由旁观者转换为参与者的过程中，我发现自己的心态也更加自如了。例如今年去香港听 MLA 终于没有再因为「这歌我甚至没听过」而不安了，甚至还抽空跟同场的网路芳邻 Liu（在圈子里太出名这里帮他化名）和 Row 约了早茶。席间聊了些香港的不知名景点后我跟 Liu 讲「我觉得你不是歌迷」，Row 有点吃惊地肯定「是我先喜欢他才跟着听的」。这个感受强化来得真棒！\u003c/p\u003e\n\u003cp\u003e旅游方面除了上一篇博客里的新加坡，今年国内到过武汉、福州、莆田、昆明、大理，省内去过佛山、东莞、惠州、清远、江门、珠海、深圳。对我来说是历年中远行次数最多的一年，原因之一是缩减了骑行时间。骑行变少一方面是开发不出新路线了（或许一次搬家可以解决问题），另一方面是发现周末骑车不如周中在家原地跑。运动这种事情越轻松越容易坚持，比起穿戴装备、码表车灯充电、绘制 GPX 这么多准备环节，原地跑需要的只是Zwift 选路线、穿鞋、打开风扇、开启手表虚拟跑步。说回旅行，除了在景点之间腾挪我开始更多地观察别处的人如何生活——有什么有趣的公共空间？街市里卖什么当季食材？大家在图书馆借什么书？我在樱花季的武汉江滩放风筝，在入夜前踏上被灯光点亮的福道感受晚风，在莆田早市里看各种小海鲜一字排开，在昆明马路边赞叹公交号码写后视镜上的贴心设计，在苍山上听采菌子的领队大哥讲脚下的茶园如何没落。与其说旅游所提供的抽离和差异视角帮我认识别处，倒不如说它反哺了我对日常生活的认识。别处是一面镜子，自己才是坐标系。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2025/01/ZJnqLM.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2025/01/ZJnqLM.png\" data-sub-html=\"\u003ch2\u003e武汉\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2025/01/ZJnqLM.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e武汉\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2025/01/PXXzXw.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2025/01/PXXzXw.png\" data-sub-html=\"\u003ch2\u003e福州\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2025/01/PXXzXw.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e福州\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2025/01/OrQzzS.jpg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2025/01/OrQzzS.jpg\" data-sub-html=\"\u003ch2\u003e莆田\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2025/01/OrQzzS.jpg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e莆田\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2025/01/iBOGCG.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2025/01/iBOGCG.png\" data-sub-html=\"\u003ch2\u003e昆明\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2025/01/iBOGCG.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e昆明\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2025/01/awBwTK.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2025/01/awBwTK.png\" data-sub-html=\"\u003ch2\u003e大理\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2025/01/awBwTK.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e大理\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e这大概就是我对这一年的总结，活得更明白了一点，世界在面前徐徐展开。\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "运动手表不完全使用感受：Apple vs Garmin",
        "date_published" : "2024-10-02T08:22:34Z",
        "date_modified" : "2025-07-17T15:46:19+08:00",
        "id" : "https://xuchunqiu.com/switch-to-garmin-watch/",
        "url" : "https://xuchunqiu.com/switch-to-garmin-watch/",
        "summary": "作为一个有轻度运动习惯（骑车、跑步、力量、HIIT，每周3～5次）的肥仔，我先后使用了三年半 Apple Watch Series 4（GPS）、一年半 Garmin Enduro 2。本文不会对比具体的硬件型号+软件版本（对比评测请看 DC Rainmaker），而是希望根据有限的使用经历对比两家的产品思路差异。\n",
        "content_html" : "\u003cp\u003e作为一个有轻度运动习惯（骑车、跑步、力量、HIIT，每周3～5次）的肥仔，我先后使用了三年半 \u003cem\u003eApple Watch Series 4（GPS）\u003c/em\u003e、一年半 \u003cem\u003eGarmin Enduro 2\u003c/em\u003e。本文不会对比具体的硬件型号+软件版本（对比评测请看 \u003ca href=\"https://www.dcrainmaker.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eDC Rainmaker\u003c/a\u003e），而是希望根据有限的使用经历对比两家的产品思路差异。\u003c/p\u003e\n\u003ch2 id=\"放弃-apple-watch-的契机\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%94%be%e5%bc%83-apple-watch-%e7%9a%84%e5%a5%91%e6%9c%ba\" class=\"header-mark\"\u003e\u003c/a\u003e放弃 Apple Watch 的契机\u003c/h2\u003e\u003cp\u003e我的 \u003cem\u003eS4\u003c/em\u003e 是 2019 年从香港买完激活过 ECG（v1）才背回内地，用了三年多电池寿命下降到 80%，平时不得不在公司留一块充电器才有足够的安全感。\u003cem\u003eS4\u003c/em\u003e 从满电到自动关机大概能支撑 5～6 小时的骑行记录（关机前运动记录会自动结束，但要等重新充电开机后才能发送到手机），2023 年 9 月发布的 \u003ca href=\"https://support.apple.com/zh-cn/guide/watch/apd4cbc876c7/10.0/watchos/10.0\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eiOS 17 带来了可以跟 Apple Watch 联动的骑行码表视图\u003c/a\u003e，是否手表没电后手机可以接管 GPS 记录我不得而知，因为 2023 年 3 月我在天猫「Garmin佳明海外旗舰店」购入了 \u003cem\u003eEnduro 2\u003c/em\u003e。 正如前面提到的 \u003cem\u003eS4\u003c/em\u003e 电池寿命告急，有次早上起床来不及补电就去爬山，没等下山手表就电量耗尽了，回家后越想越气连夜下单换表。\u003c/p\u003e\n\u003ch2 id=\"为什么不是-apple-watch-ultra\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e4%b8%ba%e4%bb%80%e4%b9%88%e4%b8%8d%e6%98%af-apple-watch-ultra\" class=\"header-mark\"\u003e\u003c/a\u003e为什么不是 \u003cem\u003eApple Watch Ultra\u003c/em\u003e？\u003c/h2\u003e\u003cp\u003eGarmin 手表有很多细分产品线（铁三、跑步、潜水、高尔夫、航海……）\u003ca href=\"https://www.garmin.com.cn/products/wearables/?cat=watches\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e官网\u003c/a\u003e 有列出全部分类，我选择 \u003cem\u003eEnduro 2\u003c/em\u003e 就是因为续航最长。\u003ca href=\"https://www.apple.com.cn/watch/battery\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cem\u003eApple Watch Ultra\u003c/em\u003e 宣称有 12 小时的运动记录时长\u003c/a\u003e，而作为当时 Garmin 续航最强的表 \u003ca href=\"https://www.garmin.com.cn/products/wearables/enduro-2/#specsTab\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cem\u003eEnduro 2\u003c/em\u003e 的运动记录在最耗电的多频多星模式下续航是 68 小时\u003c/a\u003e。\u003c/p\u003e\n\u003cdiv class=\"details admonition tip open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/\u003e\u003c/svg\u003e\u003c/span\u003eGarmin 常规产品线简介\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cul\u003e\n\u003cli\u003e飞耐时 Fenix：全能旗舰和主打产品。\u003c/li\u003e\n\u003cli\u003eForerunner：跑步。\u003c/li\u003e\n\u003cli\u003e安夺 Enduro：长续航。\u003c/li\u003e\n\u003cli\u003e本能 Instinct：入门价格体验 Garmin。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003ch2 id=\"为什么不是高驰amazfit-这些国产表\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e4%b8%ba%e4%bb%80%e4%b9%88%e4%b8%8d%e6%98%af%e9%ab%98%e9%a9%b0amazfit-%e8%bf%99%e4%ba%9b%e5%9b%bd%e4%ba%a7%e8%a1%a8\" class=\"header-mark\"\u003e\u003c/a\u003e为什么不是高驰、Amazfit 这些国产表？\u003c/h2\u003e\u003cp\u003e因为有用 Strava 汇总运动记录、\u003ca href=\"https://github.com/yihong0618/running_page\" target=\"_blank\" rel=\"noopener noreferrer\"\u003erunning_page\u003c/a\u003e 集中 \u003ca href=\"https://blog.xuchunqiu.com/workouts_page\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e展示\u003c/a\u003e 的习惯，这一点上作为国际大牌 Garmin 在数据互通上无疑是方便的。另一个原因是买自行车码表的时候还在上学预算有限选了 Wahoo，现在有了积蓄正好来试试 Garmin 的手表。\u003c/p\u003e\n\u003ch2 id=\"锁区现状\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e9%94%81%e5%8c%ba%e7%8e%b0%e7%8a%b6\" class=\"header-mark\"\u003e\u003c/a\u003e锁区现状\u003c/h2\u003e\u003cp\u003e\u003cstrong\u003e相信没人会喜欢花相同的钱买到被阉割的商品，但遗憾的是两家厂商的手表都存在锁区/阉割现象。\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e正如前面提到的 Apple Watch 的 ECG 功能在早年因为医疗审批问题是无法直接开通的，为了激活这个功能大家各显神通，例如有人 \u003ca href=\"https://v2ex.com/t/710861\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e在口岸将手机连上香港运营商信号后，不用过境就能开通 ECG\u003c/a\u003e。更多 Apple 锁区的技术细节可以参考《\u003ca href=\"https://sspai.com/prime/story/ios-feature-region-lock\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eiOS 如何按地区限制功能：浅析 MobileGestalt 与 Eligibility\u003c/a\u003e》。2024 年的今天国行 Apple Watch 已经可以无痛开通 ECG 了，但随 WatchOS 11 推出的 \u003ca href=\"https://www.v2ex.com/t/1075937\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e睡眠呼吸暂停功能又陷入了和 ECG 一样的轮回\u003c/a\u003e。至于运动数据同步，手机上安装 Strava 后关联苹果健康即可。\u003c/p\u003e\n\u003cp\u003eGarmin 这边的情况稍有不同，\u003ca href=\"https://dailysync.vyzt.dev/docs/%E6%88%91%E5%BA%94%E8%AF%A5%E4%BD%BF%E7%94%A8%E5%9B%BD%E9%99%85%E5%8C%BA%E8%BF%98%E6%98%AF%E4%B8%AD%E5%9B%BD%E5%8C%BA\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e中国区账号只能关联（也就是上传运动数据到）国内的第三方运动 App；国际区账号则可以关联 Strava。我买的外版手表则从软件上阉割了国内的两家付款码程序和公交卡\u003c/a\u003e。国际区账号可以直接注册没有任何验证，手表付款很鸡肋可能在单独带蜂窝版（Apple Watch S3 和之后的所有型号都有蜂窝网络可选，Garmin 只有极少型号有推出蜂窝款如 Forerunner 945 LTE）出门时才会用到。地图方面 Garmin \u003cdel\u003e有点坏\u003c/del\u003e有点太合规了，以某些方式对中国大陆的用户（包括我）隐藏了等高线地图（TopoActivate China ML），目前我手表上原厂跟中国大陆有关的地图是「CN China NT 2023.20-NI」、「CN RDA China NT 2023.20-NI ALL」、「China DEM v1.00」。\u003c/p\u003e\n\u003ch2 id=\"喜欢-garmin-的点\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%96%9c%e6%ac%a2-garmin-%e7%9a%84%e7%82%b9\" class=\"header-mark\"\u003e\u003c/a\u003e喜欢 Garmin 的点\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eGarmin 的按键操作逻辑完备，它甚至允许用户完全关闭触摸功能（充分考虑了登山带手套、水上/水下运动容易误触的场景）\u003c/strong\u003e。实际上只要不看地图我也是关闭了触摸在用，一方面是 Garmin 的触摸操作不够精准不如用按键快速，另一方面也有利于省电。Apple Watch 不支持仅通过按键操作。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e全天候的心率变异性（[HRV]^(Heart Rate Variability)）检测\u003c/strong\u003e。Apple Watch 的 HRV 检测频率非常低，从苹果健康里检查原始数据就能看到它一天只测量最多十几次。大概是处理器性能弱 + 电池大才给了 Garmin 这样的底气。也正因全天候的检测使得 Garmin 可以在此基础上通过 Firstbeat 的算法得到压力指数、身体电量。\n\u003cdiv class=\"details admonition info\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"/\u003e\u003c/svg\u003e\u003c/span\u003e关于您的 HRV 状态读数\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003eHRV 状态可以指示您的自主神经系统在身体和心理上如何对您的环境作出反应。平衡的 HRV 读数可能表明健康的积极迹象，如良好的训练和恢复平衡、更好的心血管健康和更强的压力恢复能力。不平衡、低或差的读数可能是疲劳、更加需要恢复或压力增加等因素的迹象。\u003c/p\u003e\n\u003cp\u003e虽然日常 HRV 读数的变化是正常的，但保持稳定、一致的 7 天 HRV 平均值是保持 HRV 状态平衡的关键。HRV 缓慢、渐进地增加也有助于您保持平衡状态，可能是体能改善的一个迹象。快速增加或减少的 HRV 读数可能表明您的训练强度过高，并可能导致 HRV 状态不平衡。\u003c/p\u003e\n\u003cp\u003e在某些情况下，通过改善训练和恢复平衡、定期锻炼、健康饮食、减轻压力和养成其他健康习惯，HRV 状态可以在一段时间后得到改善。HRV 的值因性别、年龄、健康水平甚至个人而异。\u003c/p\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cdiv class=\"details admonition info\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"/\u003e\u003c/svg\u003e\u003c/span\u003e身体电量\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e您的读数可以反映您的整体压力水平和可以进行的改变。\u003c/p\u003e\n\u003ch5 id=\"什么是身体电量\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e4%bb%80%e4%b9%88%e6%98%af%e8%ba%ab%e4%bd%93%e7%94%b5%e9%87%8f\" class=\"header-mark\"\u003e\u003c/a\u003e什么是身体电量？\u003c/h5\u003e\u003cp\u003e身体电量提供了一个数字（0-100），用于估算您一天中身体能量变化。\u003c/p\u003e\n\u003cp\u003e在理想情况下，一天的训练开始时以及即将开始某种运动时，数值较高。在紧张的一天结束时，数值较低是很自然的。\u003c/p\u003e\n\u003ch5 id=\"我们如何计算\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%88%91%e4%bb%ac%e5%a6%82%e4%bd%95%e8%ae%a1%e7%ae%97\" class=\"header-mark\"\u003e\u003c/a\u003e我们如何计算\u003c/h5\u003e\u003cp\u003eBody Battery 是通过分析诸如心率变异性（HRV）和压力等心脏信号以及睡眠质量和活动来计算得出的。HRV 仅指每次心跳期间所发生的自然变化。 这是一项关键指标，表明您的身体如何管理日常生活和活动的压力。\u003c/p\u003e\n\u003cp\u003e尽管食物摄入量不直接影响测量结果，但健康均衡的饮食总是有益的。\u003c/p\u003e\n\u003ch5 id=\"如何使用您的读数\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e6%82%a8%e7%9a%84%e8%af%bb%e6%95%b0\" class=\"header-mark\"\u003e\u003c/a\u003e如何使用您的读数\u003c/h5\u003e\u003cp\u003eBody Battery 可以帮助您更好地了解休息和运动期间的影响，进而随着时间的推移可以帮助您提高身体的恢复能力。\u003c/p\u003e\n\u003ch6 id=\"睡眠\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e7%9d%a1%e7%9c%a0\" class=\"header-mark\"\u003e\u003c/a\u003e睡眠\u003c/h6\u003e\u003cp\u003e一整晚安稳睡眠对将身体电量恢复到较高的水平有很大的帮助。 通过坚持规律的晚间运动并避免看电视、喝咖啡和喝酒等扰乱睡眠的运动，可以使体能水平上升。 如果白天和夜晚都佩戴设备，则可以得到更准确的数据。\u003c/p\u003e\n\u003ch6 id=\"活动\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%b4%bb%e5%8a%a8\" class=\"header-mark\"\u003e\u003c/a\u003e活动\u003c/h6\u003e\u003cp\u003e您的身体电量水平有助于指示您是否储备了足够的体能进行运动以及在一天的剩余时间里保持充沛精力。 例如，如果您的身体电量非常低，最好休息或做瑜伽等轻度活动。 此外还要注意避免就寝前进行夜间锻炼，因为这对睡眠质量有不利影响。\u003c/p\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e表盘信息量丰富，尽管在美观程度上不如 Apple Watch\u003c/strong\u003e。Garmin 可以通过手机上的 ConnectIQ 应用程序向手表安装应用/表盘，我用了第三方表盘 \u003ca href=\"https://apps.garmin.com/apps/034dc8d6-c695-4cbc-9193-ff2375e1e4e0\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eHIPERION\u003c/a\u003e 同时查看日出日落、心率、压力分数、步数、步行距离、呼吸频率、血氧含量、身体电量。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[ANT]^(Adaptive Network Topology)+ 连接能力\u003c/strong\u003e。ANT+ 是骑行配件普遍支持的互联协议，与更广为人知的蓝牙相比 ANT+ 支持多播，我的使用场景是同时在码表和手表上连接同一个踏频传感器，这样就有两份骑行记录互为备份。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e支持心率广播，可以替代心率带\u003c/strong\u003e。我手机上至今还留着两个应用程序 \u003ca href=\"https://apps.apple.com/us/app/heartcast-heart-rate-monitor/id1499771124\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eHeartCast\u003c/a\u003e、\u003ca href=\"https://apps.apple.com/us/app/echo-watch-heart-rate-monitor/id1494679144\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eECHO\u003c/a\u003e，它们的功能在同时安装手表端后可以获取 Apple Watch 的心率到手机，再通过蓝牙发送到码表，这样码表的骑行记录里就包含心率数据了，这是我偷懒不想买心率带时候的办法。实际用起来途中打开手机拍两张照片后手机上 app 的后台就被系统杀掉了，心率推送会直接断掉。买了心率带后发现用起来也不够完美，穿上时把握不好松紧会勒，脱下时没有及时清洗会生锈，导致每次骑车都要花更多时间做好心理建设。当发现 Garmin 支持心率广播后立刻就不再使用心率带了。有些健身房的跑步机也支持接收心率广播展示你的实时心率。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e运动记录界面自由地定义栏位和数据\u003c/strong\u003e。这个可以说 Garmin 就是按照码表的思路来布置的，从一～八栏（视表盘尺寸可能有差异）统统给你，每个栏位几十种数据可以选择。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e提供网页版控制台\u003c/strong\u003e。苹果健康里的数据只支持在移动设备上查看，而 Garmin 的主程序 Garmin Connect 同时也有网页版 \u003ca href=\"https://connect.garmin.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://connect.garmin.com\u003c/a\u003e。从功能上来说网页版是手机版的超集，提供了比手机版更全面的数据视图、训练指导。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e在记录运动的同时导航\u003c/strong\u003e。这在户外运动的时候是蛮常见的需求，根据提前规划的路线进行 [TBT]^(Turn By Turn) 导航并在偏离路线时重新算路。我甚至可以武断地讲所有以运动为卖点的手表都会实现这个功能（只是某些厂商可能不支持开放且通用的 [\u003ca href=\"https://www.topografix.com/gpx.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eGPX\u003c/a\u003e]^(Global Positioning XML) 轨迹格式；某些厂商的重新算路功能需要连接手机使用）。但 \u003ca href=\"https://discussionschinese.apple.com/thread/254872040?sortBy=rank\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e截至 2024 年在 Apple Watch 上第一方的地图与运动仍是两个独立的 app\u003c/a\u003e，第三方的 \u003ca href=\"https://apps.apple.com/us/app/workoutdoors/id1241909999\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eWorkOutDoors\u003c/a\u003e 售价 7.99 USD 支持 GPX 导入并在运动界面显示地图和回到/偏离路线提醒，遗憾的是它尚未实现 TBT 导航。\n\u003cdiv class=\"details admonition tip open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/\u003e\u003c/svg\u003e\u003c/span\u003eWorkOutDoors 的新替代\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e2024 年 11 月见到「\u003ca href=\"https://apps.apple.com/app/yaoyao-jump-rope/id1179393901\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eYaoYao - 跳绳\u003c/a\u003e」开发者为户外运动（徒步、骑行、越野跑）设计的「\u003ca href=\"https://apps.apple.com/app/toopoo-hiking-trail-guides/id6736378337\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eToopoo\u003c/a\u003e」正式发布，依然是订阅/买断两种选择。\u003c/p\u003e\n\u003cp\u003e作为 YaoYao 的老用户我非常信任作者的审美水平、拥抱新 SDK 的速度和不断迭代的热情。未来 Toopoo 不见得能够在功能上比肩 WorkOutDoors（后者界面挤下的信息量、交互的复杂逻辑都更像 Garmin），但它一定是最果味的第三方户外运动记录 App。\u003c/p\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e离线地图\u003c/strong\u003e。这是一个可能会有争议的点因为离线意味着会过时，但至少在没有信号的地方会有安全感。\u003ca href=\"https://support.apple.com/zh-sg/guide/watch/apd0111bf788/10.0/watchos/10.0\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eWatchOS 10 加入了离线地图功能\u003c/a\u003e，所以两者的差异只是地图服务提供商。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"garmin-没有做好的点\" class=\"headerLink\"\u003e\n    \u003ca href=\"#garmin-%e6%b2%a1%e6%9c%89%e5%81%9a%e5%a5%bd%e7%9a%84%e7%82%b9\" class=\"header-mark\"\u003e\u003c/a\u003eGarmin 没有做好的点\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e孱弱的处理器性能\u003c/strong\u003e，这影响了很多细节，例如：\n\u003col\u003e\n\u003cli\u003eGarmin 的 UI 无论是触屏还是按键方式操作起来都不跟手，不如 Apple Watch 丝滑。\u003c/li\u003e\n\u003cli\u003eGarmin 在拖动、缩放地图时会有明显的重新绘制等待。\u003cstrong\u003e一些基础款因为性能和存储容量限制甚至缺失地图功能。\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e在做力量训练时我会尝试以微小幅度晃动手腕期望 Garmin 亮屏，但它就是检测不到。\u003c/li\u003e\n\u003cli\u003eGarmin 导入 GPX 会有一个「计算路线」的过程，这至少涉及 TBT 的计算，还可能包含使用「China DEM v1.00」生成坡度信息。以一段 143 km 的新路线为例，载入路线花了 14 s，计算路线花了 32 s。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e糟糕的手机互联\u003c/strong\u003e，例如：\n\u003col\u003e\n\u003cli\u003eApple Watch 在手表上截图是会自动同步到手机相册的，两端都可以通过相册 app 查看；而 Garmin 则两端都无法查看，必须用 USB 线连接电脑后才能看到。\u003c/li\u003e\n\u003cli\u003eApple Watch 上被设置定时摘要的 app 通知会按与手机相同的逻辑推送，而 Garmin 则会立刻通知你。并且 Garmin 弹通知时 app 名称和通知内容是分两步展示，经常抬腕盯着 app 名称发两秒呆先见到通知内容。\u003c/li\u003e\n\u003cli\u003eGarmin 秒针经常慢几秒。在 Garmin 的文档中声称「\u003ca href=\"https://support.garmin.com/zh-CN/?faq=uXR3bWcLnq6465i9tYA5iA\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e当设备与 Garmin connect mobile 配对同步后，设备可通过 app 同步获取手机时间\u003c/a\u003e」，但即使我通过手表上的「同步时间」功能手动触发看起来也还是不准。按前面引用的文档 Garmin 也会自动通过 GPS 卫星授时，这个准不准我没有仔细测。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e落后的 OTA 和软件生态\u003c/strong\u003e，包括：\n\u003col\u003e\n\u003cli\u003eApple Watch 长周期的系统更新和新功能下放真的是独一份，Garmin 总体上按季度发布正式更新，新功能下放也抠抠索索（例如 \u003ca href=\"https://garminrumors.com/has-garmin-abandoned-the-fenix-7-pro-after-just-1-5-years\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e问世仅一年半的 Fenix 7 无法获得最新的锁屏密码功能\u003c/a\u003e）。这背后一方面是因为产品线多开发者力不从心，但很难不怀疑还有为促进新型号销量的商业考量。Garmin 会把每次的更新内容发布在论坛 forums.garmin.com 里（这是 \u003ca href=\"https://forums.garmin.com/outdoor-recreation/outdoor-recreation/f/enduro-2\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eEnduro 2 的\u003c/a\u003e），此外 garminrumors.com 维护了 \u003ca href=\"https://garminrumors.com/garmin-software-updates/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e一份滚动更新的更新日期坐标轴\u003c/a\u003e 可以更直观地了解 Garmin 主要型号的更新频次。\u003c/li\u003e\n\u003cli\u003eGarmin 的软件/表盘商店虽然也允许第三方开发者的存在，实际普遍都没什么亮点。不像 Apple Watch 因为高性能处理器和全面的 SDK 可以让一些第三方出品的运动或健康监测 app 比系统自带的更好用（例如前面提到的「YaoYao」支持通过 AirPods 记录跳绳次数）。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e不应该存在的限制\u003c/strong\u003e（可能因机型而异），包括：\n\u003col\u003e\n\u003cli\u003e闹钟最多定 10 个时间，即使所有闹钟都是关闭状态也不允许你添加第 11 个。\u003c/li\u003e\n\u003cli\u003e使用 ConnectIQ 安装的应用/表盘/数据字段合计最多 33 个。它显示我目前还剩 59.60 MB 空间（疑似指 RAM）可以再安装 6 个，有趣的是如果把手表连接到电脑会看到储存空间还有足足 9 GB。Apple Watch 那边只要存储空间够是完全不限制应用数量的。\u003c/li\u003e\n\u003cli\u003e在运动途中无法重新加载 GPX。这个需求的场景是在路途中间改变行程，用手机重新规划了另一条路线想走，但手表上只允许在地图上重新选择终点后使用机内导航提供的路线。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"室内运动指导\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%ae%a4%e5%86%85%e8%bf%90%e5%8a%a8%e6%8c%87%e5%af%bc\" class=\"header-mark\"\u003e\u003c/a\u003e室内运动指导\u003c/h2\u003e\u003cp\u003e对室内的核心、力量、HIIT 等运动，Apple 和 Garmin 提供了差异化的指导方式。\u003c/p\u003e\n\u003cp\u003eApple 通过付费订阅的 Fitness+（尚不支持中国大陆的 Apple 账户）以预录视频方式提供固定几个时长（例如 10min、20min、30min）的训练组合，所有动作都有三个教练同屏展示难、中、易的可选版本，同时会在视频上叠加你的实时心率及此心率的用户间排名。另外所有的视频的开头和结尾都会包含热身和放松动作，应该算顶尖的视频课了。\u003c/p\u003e\n\u003cp\u003eGarmin 的训练指导完全免费（或者说包含在售价里了），可以在手机或手表上选择课程（每个动作都是可以更换的），最终以手表上的动画呈现每个动作。\u003c/p\u003e\n\u003ch2 id=\"总结\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%80%bb%e7%bb%93\" class=\"header-mark\"\u003e\u003c/a\u003e总结\u003c/h2\u003e\u003cp\u003e定标题的时候我有意避开了「\u003cstrong\u003e智能手表\u003c/strong\u003e」这个称呼，因为如果说 Apple Watch 是「\u003cstrong\u003e手机第二块屏幕\u003c/strong\u003e」，那么 Garmin 则是「\u003cstrong\u003e恰好能接收手机通知的运动手表\u003c/strong\u003e」。\u003c/p\u003e\n\u003cp\u003eApple 的品牌调性决定了它不可能放弃「智能」的标签，那么在高密度电池没有突破性进展的情况下，Apple Watch 的续航问题无疑会长期存在。\u003c/p\u003e\n\u003cp\u003eGarmin 这边正好相反，手表这种始终随身的设备才是它运动板块的「\u003cstrong\u003e中枢系统\u003c/strong\u003e」，自行车上可以连接自家的 Varia 雷达、Rally 功率计，潜水可以连接自家的 Descent T 系列气瓶传感器，航海可以连接自家的 GPSMAP 海图仪控制航向，连接手机只是为了同步数据，显示通知只是附带的功能。\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "新游漫记",
        "date_published" : "2024-09-26T01:56:21Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/singapore-travel-notes-2024/",
        "url" : "https://xuchunqiu.com/singapore-travel-notes-2024/",
        "summary": "地理课上的「亚洲四小龙」、《全球猎身》里印度 IT 劳工赴美的跳板、《新兵正传》中每个男性公民都需要服役的国度，在这个火热的 8 月，我终于在新加坡开启了人生首次出国旅行。\n",
        "content_html" : "\u003cp\u003e地理课上的「亚洲四小龙」、《全球猎身》里印度 IT 劳工赴美的跳板、《新兵正传》中每个男性公民都需要服役的国度，在这个火热的 8 月，我终于在新加坡开启了人生首次出国旅行。\u003c/p\u003e\n\u003cp\u003e行程上计划呆四天三晚——周五周一请假凑一个四天小长假出来。打开 Airbnb 订房时真的被价格吓到：四五百 RMB 一晚只能住胶囊旅馆，只能咬咬牙选了八百 RMB 的酒店双床房（还好有拼到室友）。除了酒店还需要提前准备的是各种卡：\u003cstrong\u003e电话卡\u003c/strong\u003e、\u003cstrong\u003e公交卡\u003c/strong\u003e、\u003cstrong\u003e入境卡\u003c/strong\u003e。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/v5Ue8c.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/v5Ue8c.png\" data-sub-html=\"\u003ch2\u003e住了三晚的双床房，临街但隔音还可以\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/v5Ue8c.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e住了三晚的双床房，临街但隔音还可以\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cdiv class=\"details admonition info open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"/\u003e\u003c/svg\u003e\u003c/span\u003e汇率小助手\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e我去这几天 1 SGD ≈ 5.4 RMB\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e\u003cstrong\u003e电话卡\u003c/strong\u003e 因为手机支持 eSIM，我选择跳过国内卡开漫游或买境外流量包的步骤，直接买预付费卡。PoC 推荐了 \u003ca href=\"https://www.singtel.com/personal/products-services/mobile/prepaid-plans/hi-tourist\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSingtel\u003c/a\u003e、\u003ca href=\"https://www.m1.com.sg/mobile/prepaid-plans/tourist-sim\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eM1\u003c/a\u003e、\u003ca href=\"https://www.starhub.com/personal/mobile/mobile-phones-plans/prepaid-cards/travel-sim.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eStarHub\u003c/a\u003e 三家本地运营商，它们最平都是 12 SGD 有 100 GB 流量、不同额度的漫游 + 本地通话 + 短信。100 GB 流量有点太多了，相较来说我更想要 5G 的低延迟，所以最后转投 CMLink（中国移动国际）买了 36.8 HKD 的新马泰四天不限量 eSIM 纯流量卡。跟我原本想买的 M1 相比，它的优点是：5G（漫游到 Singtel）、在线购买后直接写卡、不需要登记护照。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e公交卡\u003c/strong\u003e 可以买本地人用的 EZ-Link 然后按每一程收费，也可以买 SG Tourist Pass 在连续的 1、2、3 天内不限次数乘坐公共交通，再或者直接刷 VISA/Master 信用卡。SG Tourist Pass 这些年涨了好几次价目前 3 天版是 29 SGD，不过它的日期计算是按自然日，如果我呆 4 天就要买多一张 1 天版总价去到 46 SGD。实际我全程刷招行的全币卡最后账单上是 126.14 RMB（约 23 SGD）。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e入境卡\u003c/strong\u003e（[SGAC]^(SG Arrival Card)）并不是 VISA，办理是完全自助的也绝对不会收费。需要填写的信息有护照、联系资料、停留时间、航班号、新加坡住址（酒店名称是单选框而不是文本框）、入境前离境后的城市。可以在移民与关卡局（[ICA]^(Immigration \u0026amp; Checkpoints Authority)）\u003ca href=\"https://eservices.ica.gov.sg/sgarrivalcard/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e网站\u003c/a\u003e 或使用手机应用程序 MyICA Mobile 填写，最早是入境前三日最晚是飞机落地后入境刷护照前，SGAC 填完会给一个条形码但其实不会用到，因为入境只在闸机上刷了护照，可能是 SGAC 的信息已经跟护照号自动绑定了。\u003c/p\u003e\n\u003cp\u003e新加坡的官方语言是英语、华语、泰米尔语、马来语。下图用四种语言的警示牌很好地展示了这一点。一般见到华人面孔讲中文，其它分不出族裔的用英文就好。让我哭笑不得的是从机场搭地铁去市区时一个一身徒步装备的女仔直接把我当本地人：「请问你讲中文吗？」然后拿手机里的 Google Map 问我她坐的方向对不对。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/tI0rpl.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/tI0rpl.png\" data-sub-html=\"\u003ch2\u003e某建筑工程外墙上的「危险，请避开！」警示牌，由上至下依次是英语、华语、泰米尔文语、马来语\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/tI0rpl.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e某建筑工程外墙上的「危险，请避开！」警示牌，由上至下依次是英语、华语、泰米尔文语、马来语\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e新加坡地铁（[MRT]^(Mass Rapid Transport)）的线路并不多只有六条，所以可以直接使用方位名词例如 [EW]^(East West Line)、[CC]^(Circle Line)、[DT]^(Downtown Line)，这比中国大多城市使用数字命名要容易记，也比香港屯马线、荃湾线这种包含具体地名的命名方式对初来乍到的游客要友好些。新加坡地铁所有进站口都没有挂一个大喇叭喊「大小包一律过安检」这着实让我愉悦了很多——羊角的某些站尿袋都要拎出来检查容量。但也不是说新国的地铁就没有安检，这几天里我遇过一次刚进站就被安保拦下，请到旁边的小桌子做 Security Check，他拿小手电在我的包里扫视一圈但并没有出手翻动，就算是检查完毕。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/KHiIji.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/KHiIji.png\" data-sub-html=\"\u003ch2\u003e新加坡地铁线路图\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/KHiIji.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e新加坡地铁线路图\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e身处国外自然是用 Google Map 导航，意外发现它竟然会对地铁行程显示我所乘坐车次的实时位置，地下没 GPS 信号，我猜这背后最重要的是 Google 拿到了地铁的实时进站信息，但如何判断用户上的是哪趟车呢？或许是大数据出来从进站到到达站台的平均时间从而估算；也可能是用手机陀螺仪 xy 轴的运动速度比上 z 轴的运动速度超过某个阈值后判定用户已上车。\u003c/p\u003e\n\u003cp\u003e当然作为游客坐地铁只是赶时间的权宜之计，如果时间充裕我更愿意搭巴士看街景。\u003ca href=\"https://www.ptc.gov.sg/fare-regulation/bus-rail/fare-structure\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e新加坡巴士地铁都是按里程收费\u003c/a\u003e，所以巴士下车也要拍卡。另外上车招手才停、下车提前按铃（几乎所有立柱上都有，室友多次对我悄无声息的按铃手法表示震惊），如果某站无人上落司机就一脚油门扬长而去。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/SNd0m7.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/SNd0m7.png\" data-sub-html=\"\u003ch2\u003e从夜间动物园搭巴士返市区时司机开得很猛，加上路面的起伏有种低配过山车的感觉\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/SNd0m7.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e从夜间动物园搭巴士返市区时司机开得很猛，加上路面的起伏有种低配过山车的感觉\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e巴士、地铁之外，新加坡人如何解决公共交通出行的「最后一公里」？首先排除一个错误答案：共享单车。新加坡是有共享单车的，只是这几天见到的总数不超过十辆而且压根没见人骑。在 Reddit 上看到一个高赞回复是：\u003c/p\u003e\n\u003cdiv class=\"details admonition quote open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"/\u003e\u003c/svg\u003e\u003c/span\u003eWhy is it so hard for bike-sharing companies to survive in Singapore\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003eThose who like cycling, will already have their own nice bicycles.\u003c/p\u003e\n\u003cp\u003eThose who may need it for their last mile journey, probably not going to rent a bicycle to cycle under SG’s insane weather and roads.\u003c/p\u003e\n\u003cp\u003eThey will find easier and more comfortable ways to fulfill that last mile journey.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e喜欢骑自行车的人，已经自己买好车了。\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e需要自行车接驳最后一公里的人，大概不会想在新加坡糟糕的天气和路况下租车。\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eta 们会寻找更简单、更舒适的方法来完成这最后一公里。\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.reddit.com/r/singapore/comments/1bnzobz\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.reddit.com/r/singapore/comments/1bnzobz\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/hmxiNA.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/hmxiNA.png\" data-sub-html=\"\u003ch2\u003e在 CBD 见到的两辆共享单车，分别来自 Anywheel 和 HelloRide\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/hmxiNA.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e在 CBD 见到的两辆共享单车，分别来自 Anywheel 和 HelloRide\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e来新加坡之前我也考虑过租公路车环岛的可能性，因为它真的很小一圈只有 140 km 咬咬牙也不是骑不下来，但网上看过租车价格后彻底死心了：\u003ca href=\"https://www.listnride.com/search?location=Singapore\u0026amp;search_view_type=bikes\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e个人价格大约 300 CNY/天\u003c/a\u003e、\u003ca href=\"https://www.valleycycles.org/bike-rentals.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e租车行价格大约 1000 CNY/天\u003c/a\u003e。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/VKlSXb.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/VKlSXb.png\" data-sub-html=\"\u003ch2\u003e没有派上用场的骑行路线\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/VKlSXb.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e没有派上用场的骑行路线\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e虽是放弃了踩单车的念头，行程中间我还是有留意当地交通对骑行的友善程度，CBD 坡少路宽但完全没有单车道只能使用机动车道，都是些骑行装备点满、花鼓声震天的骑行爱好者（路边有颇多临街健身房还有在大楼阴凉下跑步的人）；组屋区路窄又较多起伏，有分离的行人和自行车道，大多是来往附近交通枢纽的人骑着很平民的自行车。陆路交通管理局（[LTA]^(Land Transport Authority)）提供了 \u003ca href=\"https://www.lta.gov.sg/content/ltagov/en/map/cycle.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e在线自行车道地图\u003c/a\u003e，感兴趣的可以去看看。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/LzZKsV.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/LzZKsV.png\" data-sub-html=\"\u003ch2\u003e兀兰某条行人和自行车道连接处的减速装置是两扇错开的小门\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/LzZKsV.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e兀兰某条行人和自行车道连接处的减速装置是两扇错开的小门\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e之所以逛组屋是因为在播客上搜新加坡的内容时，听了「壮游者」的《182-新加坡-从隔房到组屋-大巴窑-防爆屋-红豆汤圆和牛车水的故事》（\u003ca href=\"https://podcasts.apple.com/my/podcast/182-%E6%96%B0%E5%8A%A0%E5%9D%A1-%E4%BB%8E%E9%9A%94%E6%88%BF%E5%88%B0%E7%BB%84%E5%B1%8B-%E5%A4%A7%E5%B7%B4%E7%AA%91-%E9%98%B2%E7%88%86%E5%B1%8B-%E7%BA%A2%E8%B1%86%E6%B1%A4%E5%9C%86%E5%92%8C%E7%89%9B%E8%BD%A6%E6%B0%B4%E7%9A%84%E6%95%85%E4%BA%8B/id1471628291?i=1000636644852\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ePodcast\u003c/a\u003e，\u003ca href=\"https://www.xiaoyuzhoufm.com/episode/656487dbfef6ec4bfb5523b4\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e小宇宙\u003c/a\u003e），嘉宾是祖籍顺德但从小在新加坡长大的 Jasmine。我在 Tripadvisor 上也找到了 Jasmine 的游览项目：「\u003ca href=\"https://cn.tripadvisor.com/AttractionProductReview-g294265-d15689462-Public_Housing_Into_the_HDB_Heartlands-Singapore.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e政府组屋 - 进入建屋局心脏地带\u003c/a\u003e」，只是 65 SGD 的价格实在让人却步。索性自己 DIY 在北部的区域中心兀兰（Woodlands）逛了一大圈，又去参观了负责营造组屋的建屋局（[HDB]^(Housing \u0026amp; Development Board)）的 LIVINGSPACE Gallery。根据后者的介绍，作为新国政府给公民提供的公共住房，新国有 80% 的人口居住在组屋区。\u003c/p\u003e\n\u003cdiv class=\"mapbox\" id=\"id-1\" style=\"width: 100%; height: 20rem;\"\u003e\u003c/div\u003e\n\u003cp\u003e我的步行路线是从地铁马西岭（Marsiling）站出发，顺时针绕一个大圈，最后走下来全程大约 14 公里。适逢中元节，楼下草地上摆了许多公共的焚烧桶，不少鸽子聚集在祭品附近大快朵颐。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/fKU9k9.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/fKU9k9.png\" data-sub-html=\"\u003ch2\u003e当地居民正在使用焚烧桶\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/fKU9k9.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e当地居民正在使用焚烧桶\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/88pIyq.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/88pIyq.png\" data-sub-html=\"\u003ch2\u003e低配版焚烧桶\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/88pIyq.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e低配版焚烧桶\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/cths57.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/cths57.png\" data-sub-html=\"\u003ch2\u003e旁边偷吃祭品的鸽子\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/cths57.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e旁边偷吃祭品的鸽子\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/FuACj9.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/FuACj9.png\" data-sub-html=\"\u003ch2\u003e另一处祭品，竟然有芬达\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/FuACj9.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e另一处祭品，竟然有芬达\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/NIHhEz.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/NIHhEz.png\" data-sub-html=\"\u003ch2\u003e社区里有些吓人的木质小人\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/NIHhEz.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e社区里有些吓人的木质小人\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e大概这些组屋是不同年代落成的关系，不同社区的建筑样式各不相同，但整体上一层都是架空层所以通风非常好，架空层在一些角落位放置桌椅或垃圾桶，而自行车的停车区域可能划在架空层里面，也可能是楼外露天的一个小区域（基本每栋楼都有，所以不会给太大）。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/JGPNlG.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/JGPNlG.png\" data-sub-html=\"\u003ch2\u003e汽车的露天停车格和后面的架空层\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/JGPNlG.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e汽车的露天停车格和后面的架空层\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e至于汽车、摩托车会在建筑附近的空地或地下设置专门的停车格，并且沿途所见的全部停车场出入口都不是使用摄像头识别车牌，最开始我注意到这点是因为见不到补光灯，等回家开始查资料的时候却在 HDB 的网站上看到它们说是使用摄像头识别车牌：\u003c/p\u003e\n\u003cdiv class=\"details admonition quote open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"/\u003e\u003c/svg\u003e\u003c/span\u003eParking@HDB FAQs\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003eDo I have to start and end a parking session? \u003c/p\u003e\n\u003cp\u003e\u003cem\u003e我需要手动开始和结束停车过程吗？\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eNope, you do not need to manually start or end any parking session. Your parking session will begin automatically when you enter the car park our vehicle number will be recognized by the cameras that are equipped with Licence Plate Recognition technology. Simpy Park and Go!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e不需要，您不需要手动开始或结束停车过程。当您进入停车场时，您本次停车将自动开始。您的车牌号码将被配备车牌识别技术的摄像头识别。只需停好并离开即可！\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.hdb.gov.sg/car-parks/parkinghdb/FAQs\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.hdb.gov.sg/car-parks/parkinghdb/FAQs\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e这是怎么回事？难道我眼花了？别着急，在相同的页面继续往下读，在解释为什么会收到 HDB 停车场未付费通知时，有这样的描述：\u003c/p\u003e\n\u003cdiv class=\"details admonition quote open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"/\u003e\u003c/svg\u003e\u003c/span\u003eParking@HDB FAQs\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003eThe motorist had exited the gantry before the parking system could identify, compute and deduct the parking fees from the cash card in the In-Vehicle Unit. Motorists are required to slow down at the exit gantries, in the same way that they would exit a car park equipped with the Electronic Parking System. \u003c/p\u003e\n\u003cp\u003e\u003cem\u003e司机在停车系统能够识别、计算并从车载单元的现金卡中扣除停车费之前就已经驶出闸门。司机需要在出口闸门处减速，就像在配备电子停车系统的停车场出口一样。\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e这里的 In-Vehicle Unit 是所有在新加坡注册车辆都需要强制安装的车辆识别和计费装置，\u003ca href=\"https://onemotoring.lta.gov.sg/content/onemotoring/home/driving/ERP/ERP.html#_Paying_ERP\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e如果不安装的话每次通过新加坡的电子道路收费（[ERP]^(Electronic Road Pricing)）闸门都会被罚款 70 SGD\u003c/a\u003e。用 Google 街景检查兀兰的某个 HDB 停车场也可以见到闸机上方是一个不带摄像头的感应模块：\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/c3zOw7.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/c3zOw7.png\" data-sub-html=\"\u003ch2\u003eGoogle 街景中的 HDB 管理的 WLW25 停车场出入口处\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/c3zOw7.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003eGoogle 街景中的 HDB 管理的 WLW25 停车场出入口处\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e上图中蓝色顶棚的是有盖人行道，很明显可以看到右边更低的平面是为了不阻挡二层住户的采光，但这个角度不易看到的是在两个平面之间有一道垂直的多孔挡板来给下面的行人遮光的同时兼顾给楼上住户通风：\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/sDJGTp.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/sDJGTp.png\" data-sub-html=\"\u003ch2\u003e有盖人行道的垂直多孔挡板\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/sDJGTp.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e有盖人行道的垂直多孔挡板\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e这种连接处的挡板有时也会演变为鱼鳞状，通风效果更佳：\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/7F24MC.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/7F24MC.png\" data-sub-html=\"\u003ch2\u003e有盖人行道的鱼鳞状挡板\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/7F24MC.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e有盖人行道的鱼鳞状挡板\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e可能是在白天都得开灯的房子住久了的缘故，很自然地也会好奇组屋的采光如何。首先我路过这些地方即使在同一个社区的楼宇中也不会采用统一的朝向，这并非是基于容积率的考虑——楼间距还是很充裕的，能塞得下儿童活动区域或是小运动场。另一个观察是组屋的窗户都不大，在 HDB LIVINGSPACE Gallery 展示的一种组屋的快速施工方式是将每一层都模块化预制好然后吊起来拼接（本文头图也能看出这种迹象），但不可能每栋楼都是这么建然后为了结构强度只能开小窗吧，所以这个问题对我来说仍是有待探索。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/tFJIBi.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/tFJIBi.png\" data-sub-html=\"\u003ch2\u003e组屋远景\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/tFJIBi.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e组屋远景\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/3cAJs0.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/3cAJs0.png\" data-sub-html=\"\u003ch2\u003e坐在架空层休息的人，出面路灯杆上有两只鸽子\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/3cAJs0.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e坐在架空层休息的人，出面路灯杆上有两只鸽子\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/TSCjjU.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/TSCjjU.png\" data-sub-html=\"\u003ch2\u003e共和理工学院的水滴雕塑\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/TSCjjU.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e共和理工学院的水滴雕塑\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e可能是规划如此，我走过的组屋楼下几乎是没有商业配套的，理发店、日用品店、餐饮店只在其中一个社区里是配齐的；有的社区甚至什么店都没有。当地居民可能要行一段距离去附近的商业中心、地铁站才能找到这些服务。有趣的是我在郊区、CBD 步行时也会有类似感觉——走了很远连卖水的便利店都找不到，只好留着空瓶期待遇到可以免费接水的小贩中心（Hawker Centre）或展览馆。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/cxf8Wa.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/cxf8Wa.png\" data-sub-html=\"\u003ch2\u003e地铁马西岭站的一层就是超市\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/cxf8Wa.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e地铁马西岭站的一层就是超市\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/YH24Rn.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/YH24Rn.png\" data-sub-html=\"\u003ch2\u003e唯一遇到能接冰水的地方是新加坡华族文化中心\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/YH24Rn.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e唯一遇到能接冰水的地方是新加坡华族文化中心\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/kejCMH.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/kejCMH.png\" data-sub-html=\"\u003ch2\u003e唯一遇到的冰淇淋自动贩卖机是在一栋组屋楼下\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/kejCMH.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e唯一遇到的冰淇淋自动贩卖机是在一栋组屋楼下\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e说到步行感受还有两点值得提及，首先路面完全没有任何破损或坑洼不平，配套的无障碍通道非常细致，会在很自然的位置出现不用专门寻找。另一点是虽然搭乘巴士时发现新加坡的法律大概是没有车辆经过斑马线必须减速的条文，但当我以行人的身份走斑马线时所有车辆都一定会停车礼让。在写这段时找到一篇更专业的观察手记，索性一并放进来：《\u003ca href=\"https://eyesonplace.net/2023/03/22/22677/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e新加坡深度考察：解析銀髮區與道路設計細節\u003c/a\u003e》。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/2PwjU7.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/2PwjU7.png\" data-sub-html=\"\u003ch2\u003e牛车水街景\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/2PwjU7.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e牛车水街景\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e这次旅行吃的方面考虑到钱包几乎都在小贩中心解决，唯一一次团餐是十几个人一起吃文东记，餐牌价格给人的感觉是如果直接看成人民币在广州来说也算偏贵的一档，口味也没有特别惊艳。所以第二天早上在 Maxwell 看室友从天天直接端了半只鸡回来我是一点都不出奇。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/Jyt6ZW.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/Jyt6ZW.png\" data-sub-html=\"\u003ch2\u003e跟室友在 Maxwell Food Centre 的第一餐\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/Jyt6ZW.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e跟室友在 Maxwell Food Centre 的第一餐\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/c8de9a.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/c8de9a.png\" data-sub-html=\"\u003ch2\u003e天天海南鸡饭餐牌\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/c8de9a.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e天天海南鸡饭餐牌\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/pdGx85.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/pdGx85.png\" data-sub-html=\"\u003ch2\u003e菜头粿和蚝煎都太碎了，不推荐\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/pdGx85.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e菜头粿和蚝煎都太碎了，不推荐\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/eciksH.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/eciksH.png\" data-sub-html=\"\u003ch2\u003e晚上在文东记开了两张枱\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/eciksH.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e晚上在文东记开了两张枱\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/26RaEU.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/26RaEU.png\" data-sub-html=\"\u003ch2\u003e次日的早餐之一：叻沙\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/26RaEU.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e次日的早餐之一：叻沙\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/oYpiAx.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/oYpiAx.png\" data-sub-html=\"\u003ch2\u003e次日的早餐之二：肉骨茶\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/oYpiAx.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e次日的早餐之二：肉骨茶\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/09/Hz2nRp.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/09/Hz2nRp.png\" data-sub-html=\"\u003ch2\u003e室友次日的早餐：天天海南鸡饭\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/09/Hz2nRp.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e室友次日的早餐：天天海南鸡饭\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/yIke7j.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/yIke7j.png\" data-sub-html=\"\u003ch2\u003e最后一天的早餐：花生汤圆。吃完就跟香港朋友去爬山了\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/yIke7j.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e最后一天的早餐：花生汤圆。吃完就跟香港朋友去爬山了\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/LauiKF.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/LauiKF.png\" data-sub-html=\"\u003ch2\u003e小贩中心吃完东西要自己把餐具放在回收处。突然发现紫色公路车坐管后面装的是佳明 Varia RCT715 雷达\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/LauiKF.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e小贩中心吃完东西要自己把餐具放在回收处。突然发现紫色公路车坐管后面装的是佳明 Varia RCT715 雷达\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/tXBeZ4.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/tXBeZ4.png\" data-sub-html=\"\u003ch2\u003eMaxwell Food Centre 对面的佛牙寺\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/tXBeZ4.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003eMaxwell Food Centre 对面的佛牙寺\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/SxMPGQ.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/SxMPGQ.png\" data-sub-html=\"\u003ch2\u003e天福宫\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/SxMPGQ.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e天福宫\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e其实也逛了几个展，最大的感受不是展览本身，而是和室友一致认为它们在验票环节实在太宽松了，不知道该归结为社会互信还是刑罚严苛。为了避免被钻空子这里就不过多展开。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/zuuFUp.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/zuuFUp.png\" data-sub-html=\"\u003ch2\u003e离境航班上见到新加坡海峡中密密麻麻的航运船只\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/zuuFUp.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e离境航班上见到新加坡海峡中密密麻麻的航运船只\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e如果说这次旅行有什么遗憾的话，首先是网购的热带风情花衬衫在物流到广州后被意外遣送北京导致我没有穿上；其次是出发前一晚被空调冻感冒了全程体力不在线；还有因为关了国内 IM 的消息推送好巧不巧有朋友这期间联系不上我。或许可能也许我该提前找个庙拜拜的。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2024/10/4or0bj.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2024/10/4or0bj.png\" data-sub-html=\"\u003ch2\u003e珍爱生命，远离中通\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2024/10/4or0bj.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e珍爱生命，远离中通\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e出国玩真的比国内有趣多了，不知道下次会去哪里。\u003c/p\u003e\n",
        "language": "zh-cn"
    }
    {
        "title" : "2023：碎片",
        "date_published" : "2023-12-30T12:16:37Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/bye-2023/",
        "url" : "https://xuchunqiu.com/bye-2023/",
        "summary": "旧年 7 月，我开始打人生的第一份工。“为什么要来广州？”身边很多人都曾问我这个问题，“因为想呆在冬天空气好的地方”。这个想法起始于 2015 年的冬天，那年我刚读大一，周末骑车去火车站取回家车票，雾霾天能见度很差，3M 特别勒耳朵的 KN95 口罩让眼镜上满是雾气，一边大口喘气一边心里突然就冒出这个念头。\n",
        "content_html" : "\u003cp\u003e旧年 7 月，我开始打人生的第一份工。“为什么要来广州？”身边很多人都曾问我这个问题，“因为想呆在冬天空气好的地方”。这个想法起始于 2015 年的冬天，那年我刚读大一，周末骑车去火车站取回家车票，雾霾天能见度很差，3M 特别勒耳朵的 KN95 口罩让眼镜上满是雾气，一边大口喘气一边心里突然就冒出这个念头。\u003c/p\u003e\n\u003cp\u003e毕业季投简历的时候，我初步限定了四个城市：杭州、上海、广州、深圳（按距离排序）。想想觉得非常有趣，在大学的开始和结束你要分别做一场足以影响人生未来走向的抉择。七年前的我对周遭世界知之甚少，选择西安只是因为离家近+有一个高中学长也在，即便我俩一直没有面基过。七年后的我除了考虑就业机会，其实也在暗自拣选城市或者说市民的气质，广州、上海是我心里的 top 2。可惜当时的上海市民正遭遇封城，投出的简历完全没有被处理，所以广州很快成为我的唯一选择。尤其到收到这个不需要加班的 offer 后，我更是特别满意。\u003c/p\u003e\n\u003cp\u003e目前为止我还在这家公司，这一年半时间一共搬了两次家，都在公司 3 km 范围内。第一次是刚来时候，提前网上没找到合适的房子，就先订了酒店落脚一周，当时只有四件行李和一个显示器。线下看了一遍房后，最后选了小区的一室一厅，不到 40 平，窗外是大片的树。夏天的时候有些烦人，六点会有鸟儿每天准时叽叽喳喳半个钟，然后是清洁工拿大扫帚扫地的次啦次啦，睡眠质量受到了严重影响，除非是我特别困的时候才能一直睡到闹钟响。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/12/ewYzN2.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/12/ewYzN2.png\" data-sub-html=\"\u003ch2\u003e阳台每天下午可以晒到太阳\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/12/ewYzN2.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e阳台每天下午可以晒到太阳\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e楼上的邻居家养了条叫「多多」的狗，虽然只是听别人这么叫，但这个音也不会有别的字了吧？多多是一条浅棕色的腊肠犬，看起来很机灵，深得院子里小孩子们的喜欢，每到周末我想睡懒觉或者中午打个盹的时候，总能听到楼下小孩子亲切地呼唤多多下去玩。又比如今天早上我是怎么醒的呢？是十点多的时候听到男主人在阳台喊楼下的狗子：「多多！吃芒果！」。珍爱睡眠，愿以后的邻居都不养狗。\u003c/p\u003e\n\u003cp\u003e一楼的前邻居经常喜欢敞着门，我不是很理解这种行为———「强哥」直接进屋了怎么办？直到有天上楼的时候惊到一只超大的蟑螂，只见它身手敏捷地从门缝钻进了隔离邻居的家，我才知道哦是我多虑了。一楼前邻居家有个还在上小学的小姑娘，几乎每天晚上都能听到她喊「哎呀！烦死了！」，不知道是不是作业写不完。作为初入职场的打工人我反而逐渐体会到学生时代的轻松：知识是具体的背背课本就行，目标是明确的通过考试就行，假期是随意的想什么时候放都行。\u003c/p\u003e\n\u003cp\u003e创业公司有个好处是同龄人多，因为年轻意味着便宜。尤其刚来的时候四五十号人坐在一个空间办公，起步阶段各个岗位都在逐渐摸索试错，频繁的沟通让所有人都很快地熟悉了起来。但慢慢地一些事情让我开始觉得没必要同所有人都保持友好的关系，这倒不是说有人把锅甩到了我头上，毕竟前领导对手下的人非常关照，帮我们屏蔽掉外部的干扰可以认真做事，工作赶进度的时候还自己下场敲代码，后来跟她聊的时候她说这种管理方式是在模仿她的某任领导。怎么说呢？感恩我们都曾遇到过的好领导。\u003c/p\u003e\n\u003cp\u003e有天看 log 的时候突然发现 M 来广州了，几年前我去买周老师新书的时候下了火车找不到方向，初代 iPhone SE 的定位一直在飘没有办法用手机地图，就拍了张民女的像在群里有没有中大人可以指路，M 就冒出来了。买到书后我跟 M 讲今天我准备去哪里抓宝，M 半夜特登发消息确认我有返到屋企。不过时间的关系当时没来得及面基，今年终于被我补上了，还把几年前跟室友去成都玩的时候买的冰箱贴也送给了他。\u003c/p\u003e\n\u003cp\u003e毕业前的那段时间我特别闲，就每天在 BS 上一边做 fact-checking 一边当话唠，加了广州本地群后被直接认了出来还挺有成就感的，毕竟我在 BS 上用的别名。工作之后我慢慢就不太活跃了，但竟然有一个东北的玩家 H 私我说社群需要更多这样认真的人，别提多开心了，为了写这段我悄悄查了一下 ta 的 COMM 发言，发现 7 月的时候还在跟友军 battle 虚假申请的事，也是个爱较真的老铁。今年可以开牌的线下活动只有三场充电（同埋开饭），成功跟本地友军混了个脸熟，甚至第三场的时候正好我去杭州找玻总，大佬联系了上海友军送 key 到杭州给我，然后迫于无人背锅我就成了第三场的 PoC。当 PoC 要考虑的问题蛮多的：提前散 key 的安排、充电房的选址、充电当日的时间规划、有效 key 的计算与装桶、鸽子数量的推估等等，还好我做得不错。明年会有可以去到的 onsite 活动安排，感觉这个游戏或许还能再残喘多几年也说不定呢。\u003c/p\u003e\n\u003cp\u003e10月的时候听了人生第一场演唱会。因为我不擅长唱歌也不爱听歌，所以我一直觉得去演唱会是我永远不会做的事情。 《随机波动》有期节目的结尾放了 ta 们的《邊一個發明了返工》 我才第一次知道这个乐队，找出来听了几首其它歌之后也没有觉得特别喜欢。态度的转变发生在我在网上看到一张演唱会现场照片：\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/12/izO8AJ.jpg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/12/izO8AJ.jpg\" data-sub-html=\"\u003ch2\u003e屏幕上是《浪漫九龍塘》的歌词\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/12/izO8AJ.jpg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e屏幕上是《浪漫九龍塘》的歌词\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e这次能买到演唱会的飞也是非常之巧，因为我不常刷社交软件。见到到高中的师兄 D 在豆瓣上标记了一张 ta 们的新专辑，才突发奇想搜了一下今年有没有演唱会，正好就看到前几天 ta 们公布了预售安排。网络售票是在香港的一个票务平台进行的，时间到之后网站会自动排队，等了三四个小时才进了选座页面，然后信用卡下单一气呵成（招行的全币卡真的超级好用）。更巧的是我跟早见买到了同一天的，可惜在现场没有遇到。后来她组织的跟《香港散步學》作者一起散步的活动我也没有被选中，有点后悔没有把上一篇博客的链接直接甩过去。\u003c/p\u003e\n\u003cp\u003e今年还会开车了，其实我驾照很早就到手，但一直没有上路的经验，之前一直戏称自己是「拿到驾照后只开过碰碰车」。9 月的时候因为有次同事说胡话让我开车，我就抱着「撞了就撞了」的心态开了一小段。后来拿另一个同事的车在园区绕了几圈后就算是练好了。第一次上路误打误撞开进城中村遭遇了窄路会车、山路堵车等各种复杂路况，第二次直接上了高速，这么两次之后就完全敢自己开了。不过目前来说还没有买车的打算，因为这个通勤距离买车太浪费了，而且按我目前的用车需求还是打车划算。\u003c/p\u003e\n\u003cp\u003e12 月正好赶上降温，本来说跟邻居们天台饮杯就临时把场地改成了我家，两个月没有打扫卫生的我措手不及，只能把各种杂物都搬进卧室里。大家各自带些食物，边看视频边聊天还挺惬意的，谈谈工作谈谈理想然后又回归生活。对于这是最后一次聚会每个人都心照不宣，这种告别比我之前送别的同事走的时候显得更为平淡，不至于那么伤感。在这之后我斥巨资采购了两个收纳柜，把东西分门别类整理好后心里舒畅很多。\u003c/p\u003e\n\u003cp\u003e没有宏大的总结，只有细小的生活，这就是我的 2023。\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "美丽新香港",
        "date_published" : "2023-08-17T07:02:17Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/brave-new-hong-kong/",
        "url" : "https://xuchunqiu.com/brave-new-hong-kong/",
        "summary": "比卡超今年 2 月宣布全面通关之后，我很快就加好了港澳通行证的签注，但这种出去玩的热情很快就被无尽的工作消磨殆尽。直到这个月收到媒体 W 要在独立书店 H 现场派发纪念品的确认邮件，这才急忙打开 Airbnb 开始订房。\n",
        "content_html" : "\u003cp\u003e比卡超今年 2 月宣布全面通关之后，我很快就加好了港澳通行证的签注，但这种出去玩的热情很快就被无尽的工作消磨殆尽。直到这个月收到媒体 W 要在独立书店 H 现场派发纪念品的确认邮件，这才急忙打开 Airbnb 开始订房。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/ZM8duz.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/ZM8duz.png\" data-sub-html=\"\u003ch2\u003e可以见到主编！\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/ZM8duz.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e可以见到主编！\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e2022 年底 Airbnb 宣布停止在中国内地运营后我遗憾了好久，一方面是因为用过小猪短租、美团民宿之类的国内民宿平台后我发现 Airbnb 是最省心的，不会有刚下完订单立刻收到房东电话说没房了给你换一间那种表里不一；另一方面在逐渐走向封闭的社会环境中全球化平台的存在起码还能让我感受到一些与世界偶尔的连结。想起早见写过她在上海的时候周末会去找那些非常有特色的 Airbnb 然后去认识这些有趣的房东，如果我是社牛的话大概也会是这样子的吧。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/Uv68tS.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/Uv68tS.png\" data-sub-html=\"\u003ch2\u003e截取自早见的博文 感谢 Airbnb曾把这样一个梦带到这里｜hayami’s blog\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/Uv68tS.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e截取自早见的博文 \u003ca href=\"https://hayami.typlog.io/airbnb\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e感谢 Airbnb曾把这样一个梦带到这里｜hayami’s blog\u003c/a\u003e\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e住处定好之后就开始考虑要去哪里逛。我不是一个典型的游客——相比于网红景点，我更喜欢陌生地方的社区和附近。之前按照媒体 I 的报道拜访过上海街 404 号和黑暗中对话体验馆，都是非常独特的体验，我甚至还写了一篇黑暗中对话的体验博文准备发上来，可惜在毕业迁徙的过程中遗失了。我在微信的昵称就取自 I 发刊词的前半段，不过现在它搬去了台湾，就很难讲这句话还是否熨帖。\u003c/p\u003e\n\u003cp\u003e几个月前在广州骑行群中看到有人分享 \u003ca href=\"https://www.ntctn.hk/tc/full-track\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e屯门-马鞍山 60 KM 单车径\u003c/a\u003e。坡度比较平缓（甚至好过黄埔这边！）适合作为开香港新地图的第一程，为此我还在网上爬文好久确认到在「單車匯合中心」一般都可以租到车，然后又在 Google Map 找哪家租车店看起来还没有执笠，考虑到我要异地还车，最终选了评分一般但店最多的「龍記單車」。\u003c/p\u003e\n\u003cp\u003e踩单车之外，我还想再旁听一次庭审。这个很看运气：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e庭审的时间一般放在周内、周六很少有，我预计是周五上午到、周一下午回，实际就只有周五有可能听到庭审\u003c/li\u003e\n\u003cli\u003e周五下午想趁工作日去一下 M+，所以我只能听到周五上午的庭审，而上午一般 9 点或 10 点开庭，要更早到赶派筹\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://e-services.judiciary.hk/dcl/index.jsp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e确切的庭审安排只会预先半日公布\u003c/a\u003e，我订车票的时候无法得知庭审会安排在哪个法院\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e周五天蒙蒙亮我就出门打车到天河，搭果姐推荐的跨境中港通最早一趟 6:30 的大巴经过两个小时到深圳湾口岸，自行过关后换车又用了一个小时到太子上海街。此时还有三十分钟开庭，召了辆的士十几分钟去到法院，意外地赶上了派筹。\u003c/p\u003e\n\u003cp\u003e旁听的流程是这样的，首先通过安检，如果有带水的话一定要喝完或者倒掉；如果有违禁品需要寄存，例如我钥匙上挂的只有回勾的小刀 XD。然后取一张有编号的白筹并在法庭门前的椅子上等律师、家属（好像是以黄筹区分，网上没有查到资料）都入场后才轮到公众进入，安保员会按照编号顺序一次放行十几个人。进去之后可以在公众席任坐，因为椅子上没有编号。\u003c/p\u003e\n\u003cp\u003e我进的那个庭公众席前面依次是家属、记者，以上这些位置都是侧面。跟法官面对面由近至远依次是坐在证人席的还押被告 H、律师和其它还押被告，本庭律师席中的大律师竟有十一个之多，但我观察到只有两个在上午的庭审中盘问了 H。我一开始没有找到证人席在哪里，H 背对我坐，开庭前回身与家属席的人比划手势来问候时我也没认出她来，直到她开始作供我才敢最终确定。\u003c/p\u003e\n\u003cp\u003e庭审的过程大致是大律师以英文发问，H 旁边的传译以广东话复述，H 以广东话作答，传译再以英文复述，法官有时会进一步询问。这种来回的语码转换作为听众着实费脑，公众席坐我左前一个带蓝口罩高高瘦瘦的男仔一直在本子上做速记，不知道他是怎么做到的。\u003c/p\u003e\n\u003cp\u003e现实法庭的气氛跟《毒舌大状》好不同，甚至有好几次旁听席都笑场了，例如大律师觉得法官进一步询问的时候没有表达清楚有点心急就打断：「May I try？」，又比如 H 讲「專頁」（Fan Page）法官追问：「專業？即係 Professional？」，再比如大律师问知不知笔名 L 的身份 H 答：「我都唔知佢是一個人定係一堆人來㗎🤷🏻‍♀️」。\u003c/p\u003e\n\u003cp\u003e11 点多的时候中场休息了一下，出门上厕所仍要记得带筹因为再入来还要验。12 点多的时候大律师主动说还有几分钟时间来不及问完剩下的问题，建议法官休庭，法官从善如流。因为法庭大楼内禁止摄录，这段没有照片可以用。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/cENIah.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/cENIah.jpeg\" data-sub-html=\"\u003ch2\u003e午饭\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/cENIah.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e午饭\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/XXGBee.PNG\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/XXGBee.PNG\" data-sub-html=\"\u003ch2\u003e浏览器免登录落单体验很棒\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/XXGBee.PNG     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e浏览器免登录落单体验很棒\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e吃过午饭搭 MTR 去 M+。我的八达通上次使用是四年前，而\u003ca href=\"https://www.octopus.com.hk/tc/consumer/octopus-cards/proper-use/inactive-octopus/index.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e三年内未用过的卡片是需要到客务中心处理的\u003c/a\u003e，不过我临行前把实体卡转成了电子卡并用八达通的手机 App 花 10 HKD 买了一个电子卡面，竟然过闸的时候没有被卡住。\u003c/p\u003e\n\u003cp\u003eM+ 的大部分展览内容非常之贴地，能感觉到艺术家对现实的关切，这特别好（但回看我的相册发现这部分完全没拍到，潜意识里我大概觉得这不够吸睛）。我坐在一个只有一条凳子的小房间里看完了一部十几分钟的在欧司朗工厂里拍的纪录片，这种在人来人往的展览中完全抽离出来的感觉蛮神奇的。\u003c/p\u003e\n\u003cp\u003e展览的动线设计的不是很好，没办法不走回头路，应该上午去是比较好的选择，时间会更充裕一些。里面的餐饮卖的好贵，我买了一瓶果汁后就完全不想再去逛纪念品商店了，但后来在豆瓣上见到友邻拍的商品感觉错过了好多有意思的东西。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/YEwiae.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/YEwiae.jpeg\" data-sub-html=\"\u003ch2\u003e下午的阳光正好直射进来\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/YEwiae.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e下午的阳光正好直射进来\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/4vMtsN.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/4vMtsN.jpeg\" data-sub-html=\"\u003ch2\u003eM\u0026#43; 望中环\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/4vMtsN.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003eM+ 望中环\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/kjKSeF.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/kjKSeF.jpeg\" data-sub-html=\"\u003ch2\u003e一直想体验机械打字机的 Carriage Return 和 Line Feed 是什么感觉\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/kjKSeF.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e一直想体验机械打字机的 Carriage Return 和 Line Feed 是什么感觉\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/wqdqNS.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/wqdqNS.jpeg\" data-sub-html=\"\u003ch2\u003e艺术与政治\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/wqdqNS.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e艺术与政治\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/PjVs3O.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/PjVs3O.jpeg\" data-sub-html=\"\u003ch2\u003e跟我小时候玩具一模一样！\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/PjVs3O.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e跟我小时候玩具一模一样！\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/iER29z.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/iER29z.jpeg\" data-sub-html=\"\u003ch2\u003e海边好多麻雀\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/iER29z.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e海边好多麻雀\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/Lskk2F.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/Lskk2F.jpeg\" data-sub-html=\"\u003ch2\u003e远远看了一眼 M\u0026#43; 的商店\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/Lskk2F.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e远远看了一眼 M+ 的商店\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/lN3W1h.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/lN3W1h.jpeg\" data-sub-html=\"\u003ch2\u003e食晚餐路过的天桥上拍落日，只最左路牌为 监狱体\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/lN3W1h.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e食晚餐路过的天桥上拍落日，只最左路牌为 \u003ca href=\"https://road.org.hk/PrisonGothic.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e监狱体\u003c/a\u003e\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/ygDcGe.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/ygDcGe.jpeg\" data-sub-html=\"\u003ch2\u003e糖水当晚餐\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/ygDcGe.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e糖水当晚餐\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/8yJam0.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/8yJam0.jpeg\" data-sub-html=\"\u003ch2\u003e这几天的住处，分体式空调比窗机安静很多\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/8yJam0.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e这几天的住处，分体式空调比窗机安静很多\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e第二日本来想爬獅子山，但早上下了雨担心行山路滑就改去离岛。香港和广州都有長洲島，可惜快船过去单程就要一个小时，这对下午4点才出门的我来说着实有点远了，所以最后去了行程时间短一半的南丫島。南丫島有榕樹灣和索罟灣两个码头，都有到中環或者香港仔的船班。榕樹灣的村子更大，餐饮、民宿、酒吧一应俱全；索罟灣细一些只有餐饮。我没什么所谓去榕樹灣的船先开我就搭了。去程 18.6 HKD，从索罟灣回中環 23.1 HKD。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/SXQPYP.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/SXQPYP.jpeg\" data-sub-html=\"\u003ch2\u003e中環 \u0026lt;-\u0026gt; 榕樹灣 时刻表\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/SXQPYP.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e中環 \u0026lt;-\u0026gt; 榕樹灣 时刻表\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/5PpAZV.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/5PpAZV.jpeg\" data-sub-html=\"\u003ch2\u003e中環 \u0026lt;-\u0026gt; 索罟灣 时刻表\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/5PpAZV.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e中環 \u0026lt;-\u0026gt; 索罟灣 时刻表\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/IKXavY.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/IKXavY.jpeg\" data-sub-html=\"\u003ch2\u003e船舱内景\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/IKXavY.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e船舱内景\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/Z47Yun.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/Z47Yun.png\" data-sub-html=\"\u003ch2\u003eStrava Heatmap (Hiking) 也能看出北边更热门\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/Z47Yun.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003eStrava Heatmap (Hiking) 也能看出北边更热门\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/muuFLk.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/muuFLk.jpeg\" data-sub-html=\"\u003ch2\u003e走的最简单的家樂徑（粉红色虚线）\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/muuFLk.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e走的最简单的家樂徑（粉红色虚线）\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/vRMoVr.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/vRMoVr.jpeg\" data-sub-html=\"\u003ch2\u003e南丫發電廠的三条柱\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/vRMoVr.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e南丫發電廠的三条柱\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/FGQ9lD.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/FGQ9lD.jpeg\" data-sub-html=\"\u003ch2\u003e洪聖爺泳灘\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/FGQ9lD.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e洪聖爺泳灘\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/xkjzes.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/xkjzes.jpeg\" data-sub-html=\"\u003ch2\u003e近处为凌日灣，远处为鐵砂塱灘\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/xkjzes.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e近处为凌日灣，远处为鐵砂塱灘\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/4U55zM.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/4U55zM.jpeg\" data-sub-html=\"\u003ch2\u003e没想到还挺累的\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/4U55zM.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e没想到还挺累的\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/SfYL3Z.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/SfYL3Z.jpeg\" data-sub-html=\"\u003ch2\u003e行山径两边都有护栏\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/SfYL3Z.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e行山径两边都有护栏\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/f2IFkb.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/f2IFkb.jpeg\" data-sub-html=\"\u003ch2\u003e索罟灣的渔排\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/f2IFkb.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e索罟灣的渔排\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/rbVg5T.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/rbVg5T.jpeg\" data-sub-html=\"\u003ch2\u003e索罟灣的介绍\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/rbVg5T.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e索罟灣的介绍\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/I9FWYK.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/I9FWYK.jpeg\" data-sub-html=\"\u003ch2\u003e索罟灣的猫猫\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/I9FWYK.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e索罟灣的猫猫\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/50EiwX.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/50EiwX.jpeg\" data-sub-html=\"\u003ch2\u003e落单后开始拍延时\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/50EiwX.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e落单后开始拍延时\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/EipLIC.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/EipLIC.jpeg\" data-sub-html=\"\u003ch2\u003e有个青菜没拍到\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/EipLIC.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e有个青菜没拍到\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/Mw2jY2.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/Mw2jY2.jpeg\" data-sub-html=\"\u003ch2\u003e索罟灣二號碼頭，最得意的一张\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/Mw2jY2.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e索罟灣二號碼頭，最得意的一张\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/UMBi47.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/UMBi47.jpeg\" data-sub-html=\"\u003ch2\u003e食完饭突降暴雨\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/UMBi47.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e食完饭突降暴雨\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/g14NwK.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/g14NwK.jpeg\" data-sub-html=\"\u003ch2\u003e回到住处还在下雨，还好隔音不错\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/g14NwK.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e回到住处还在下雨，还好隔音不错\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e在香港这几晚我睡得特别香，大概是远离工作的环境后我才能彻底松弛下来。第三天早上睡到快 9 点才醒，啃了昨天在 7 仔买的饭团就立刻去屯门租单车。因为想赶在下午 2 点前到书店 H，在 MTR 上算了一下时间发现想骑全程是来不及的，只能从元朗开始。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/2L4YuV.PNG\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/2L4YuV.PNG\" data-sub-html=\"\u003ch2\u003eCitymapper 步行导航不如 Google Map，但公共交通的即时通知非常好用\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/2L4YuV.PNG     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003eCitymapper 步行导航不如 Google Map，但公共交通的即时通知非常好用\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/qwYqkw.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/qwYqkw.jpeg\" data-sub-html=\"\u003ch2\u003e车站的增值机尚不支持 NFC，这意味着对于没有香港手机号的使用者来说手机里的八达通只能通过「钱包」中的非内地卡或「旅客八达通」中以较差汇率使用内地卡增值；有香港手机号则可以注册「八达通」然后通过转数快或本港银行增值\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/qwYqkw.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e车站的增值机尚不支持 NFC，这意味着对于没有香港手机号的使用者来说手机里的八达通只能通过「钱包」中的非内地卡或「旅客八达通」中以较差汇率使用内地卡增值；有香港手机号则可以注册「八达通」然后通过转数快或本港银行增值\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/O4wt5v.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/O4wt5v.jpeg\" data-sub-html=\"\u003ch2\u003e很好玩的一架车，两侧写的是「女の不满，男の浪漫」\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/O4wt5v.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e很好玩的一架车，两侧写的是「女の不满，男の浪漫」\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/XG3shu.JPG\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/XG3shu.JPG\" data-sub-html=\"\u003ch2\u003e龍記單車中低档山地车 100 HKD 骑整日，并不便宜\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/XG3shu.JPG     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e龍記單車中低档山地车 100 HKD 骑整日，并不便宜\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/stnATu.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/stnATu.jpeg\" data-sub-html=\"\u003ch2\u003e路上见到一辆「LocoBike 樂區踩」，车款有点眼熟\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/stnATu.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e路上见到一辆「LocoBike 樂區踩」，车款有点眼熟\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/zQDpJV.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/zQDpJV.jpeg\" data-sub-html=\"\u003ch2\u003e这我租的车\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/zQDpJV.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e这我租的车\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/qjLBdx.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/qjLBdx.jpeg\" data-sub-html=\"\u003ch2\u003e中间下了阵雨，还好不大\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/qjLBdx.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e中间下了阵雨，还好不大\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/EVvUJx.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/EVvUJx.jpeg\" data-sub-html=\"\u003ch2\u003eTa们骑的双人车，一直在打摆哈哈哈哈哈\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/EVvUJx.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003eTa们骑的双人车，一直在打摆哈哈哈哈哈\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/ds1Nba.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/ds1Nba.jpeg\" data-sub-html=\"\u003ch2\u003e到上水的时候下大了，被迫提前还车\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/ds1Nba.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e到上水的时候下大了，被迫提前还车\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/PZBQwT.png\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/PZBQwT.png\" data-sub-html=\"\u003ch2\u003e只骑完了 60 KM 的 17.48 KM\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/PZBQwT.png     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e只骑完了 60 KM 的 17.48 KM\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/wKZvI8.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/wKZvI8.jpeg\" data-sub-html=\"\u003ch2\u003eM 记的期间限定薯条，多了一包海苔粉和一个空袋子需要自己摇\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/wKZvI8.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003eM 记的期间限定薯条，多了一包海苔粉和一个空袋子需要自己摇\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/JfexXD.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/JfexXD.jpeg\" data-sub-html=\"\u003ch2\u003e太多水货客了\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/JfexXD.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e太多水货客了\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/TS0scS.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/TS0scS.jpeg\" data-sub-html=\"\u003ch2\u003e上水站公共小巴總站\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/TS0scS.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e上水站公共小巴總站\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e赶在 2 点来到书店 H，好细间铺开在唐楼 3F，寻常路过的人根本不会注意到这里。屋门外贴了好多活动、电影的海报，一打开门进去已经有十几个人在了。报了编号顺利取到纪念品后我选了本书坐在窗边钉书钉。听着窗外的雨淅淅沥沥、身后的读者来来去去、W 的主编们不断讲「多谢支持」，真的好钟意这种氛围。\u003c/p\u003e\n\u003cp\u003e第四日因为下午要返程，只在大埔随便逛了逛。\u003c/p\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/X4EPSO.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/X4EPSO.jpeg\" data-sub-html=\"\u003ch2\u003e林村天后宮\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/X4EPSO.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e林村天后宮\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/gtguMy.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/gtguMy.jpeg\" data-sub-html=\"\u003ch2\u003e林村屋子上的涂鸦\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/gtguMy.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e林村屋子上的涂鸦\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/MA2Lvp.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/MA2Lvp.jpeg\" data-sub-html=\"\u003ch2\u003e林村許願樹\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/MA2Lvp.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e林村許願樹\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/jAeAfi.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/jAeAfi.jpeg\" data-sub-html=\"\u003ch2\u003e为什么有 ofo？\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/jAeAfi.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e为什么有 ofo？\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/008bEk.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/008bEk.jpeg\" data-sub-html=\"\u003ch2\u003e另一间龍記單車\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/008bEk.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e另一间龍記單車\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/inDVfm.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/inDVfm.jpeg\" data-sub-html=\"\u003ch2\u003e藏在云里的馬鞍山\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/inDVfm.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e藏在云里的馬鞍山\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/bED295.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/bED295.jpeg\" data-sub-html=\"\u003ch2\u003e廣惠橋\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/bED295.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e廣惠橋\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/hG6fl3.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/hG6fl3.jpeg\" data-sub-html=\"\u003ch2\u003e鐵路博物館馆藏通用儲值票与車票套\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/hG6fl3.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e鐵路博物館馆藏通用儲值票与車票套\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/mAk6RW.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/mAk6RW.jpeg\" data-sub-html=\"\u003ch2\u003e另一个車票套\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/mAk6RW.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e另一个車票套\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/eVPdCh.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/eVPdCh.jpeg\" data-sub-html=\"\u003ch2\u003e当年的九广铁路一等车厢就配备了 Samsung 冷气（不是\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/eVPdCh.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e当年的九广铁路一等车厢就配备了 Samsung 冷气（不是\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" href=\"https://image.assets.xuchunqiu.com/img/2023/09/7fhJ67.jpeg\" title=\"\" data-thumbnail=\"https://image.assets.xuchunqiu.com/img/2023/09/7fhJ67.jpeg\" data-sub-html=\"\u003ch2\u003e鸡蛋格遮阳板\u003c/h2\u003e\"\u003e\u003cimg  loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/7fhJ67.jpeg     \u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e鸡蛋格遮阳板\u003c/figcaption\u003e\n    \u003c/figure\u003e\n\u003cp\u003e这次的香港四日游大概就这些了，塞了这么多照片进去不知道会不会特别影响加载速度 XD。没什么好总结的，就说一声十月再见吧👋\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "今年是25岁的我",
        "date_published" : "2023-04-12T01:47:51Z",
        "date_modified" : "2023-09-19T13:56:30Z",
        "id" : "https://xuchunqiu.com/yet-another-chun-qiu/",
        "url" : "https://xuchunqiu.com/yet-another-chun-qiu/",
        "summary": "上个月在 V 站看到 Randy 写的《28 岁，我还想生猛下去》 ，突然意识到在人生的某个阶段记录下自己的所思所想，多年后再来回顾的时候，应该是件特别有意思的事情。那么趁着 25 岁这个可以整除 100 的年龄，我也来试着写点什么。\n",
        "content_html" : "\u003cp\u003e上个月在 V 站看到 \u003ca href=\"https://lutaonan.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRandy\u003c/a\u003e 写的\u003ca href=\"https://www.v2ex.com/t/927096\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e《28 岁，我还想生猛下去》\u003c/a\u003e ，突然意识到在人生的某个阶段记录下自己的所思所想，多年后再来回顾的时候，应该是件特别有意思的事情。那么趁着 25 岁这个可以整除 100 的年龄，我也来试着写点什么。\u003c/p\u003e\n\u003ch2 id=\"2009-年\" class=\"headerLink\"\u003e\n    \u003ca href=\"#2009-%e5%b9%b4\" class=\"header-mark\"\u003e\u003c/a\u003e2009 年\u003c/h2\u003e\u003cp\u003e先上一张旧照，左三是我：\u003c/p\u003e\n\u003cp\u003e\u003cimg class=\"tw-inline\" loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/iCn0Qa.png   alt=\"一排人蹲在教室后面写什么东西\"  \u003e\u003c/p\u003e\n\u003cp\u003e我右手边是坤哥，我俩经常在体育课自由活动时间背靠背坐草地上一起背政治。想想都是痛苦的回忆，首先我是属于背书特别慢的人，我们的自习课呢都是前半节背书后半节课代表出题让大家默写，为了能多些时间背书，我们就会把知识点提前抄到纸上然后趁体育课时间提前准备。初中的政治考试很有意思，问答题是按点给分，不管逻辑，所以我背政治都是从目录开始背——先记单元叫什么、然后是这个单元里有哪些课、最后是每一课里有哪些知识点，考试遇到问答题就直接把所有有关的知识点全默写一遍，往往也能拿到不错的分数。\u003c/p\u003e\n\u003cp\u003e初中第一次地理考成绩恰好比华夏高1分，他就挑衅说“你信不信下次我一定比你高”，到了第二次我又恰好高他1分，现在想想依然好爽，哈哈哈！应该说我初中的时候最喜欢的课是生物和地理，但可惜它们在初三都没有了。初三开始整个年级都搬到了另一个校区，距离远了大概三公里，于是我上学的方式就从步行切换到了骑车。放学时候跟几个同学在红庙路的车流中见缝插针地飙车是我每天最快乐的事情，唯一一次意外是跟一辆电动车正面遭遇把我前轮撞歪了。\u003c/p\u003e\n\u003cp\u003e初中毕业之后，有偷偷从家属区的后门溜回去过，发现以前的教学楼全部被推倒重建，原来一楼栖息的鸽子都不见了。新楼是一个三面围起来的结构，想想都替现在的学生们觉得压抑。\u003c/p\u003e\n\u003ch2 id=\"2012-年\" class=\"headerLink\"\u003e\n    \u003ca href=\"#2012-%e5%b9%b4\" class=\"header-mark\"\u003e\u003c/a\u003e2012 年\u003c/h2\u003e\u003cp\u003e升了高中之后，我才有了手机、电脑和 QQ 号，这个时间可能比大多同龄人都要晚。第一部手机是斐讯的 FWS610——没错就是那个路由器 0 元购的斐讯。这个手机的出厂系统是 Andorid 2.3，在我手里完全没有收到过任何系统更新，偶然在安智论坛上看到了 Android 手机可以 Root，就慢慢自己尝试折腾。说折腾也许不太恰当，当时的手机可没有 BL 锁之类的东西，Root 手机就是用不同的软件点几次屏幕的事情。第一次用「360超级Root」没成功，第二次换了「KingRoot」就轻松搞定。Root 之后可玩性高了很多，比如拿「RE管理器」去修改系统的属性信息来在发说说的时候显示成别的设备、用「八门神器」修改单机游戏的金币、装「ViPER4Android FX（蝰蛇音效）」提升音质等等。但有次玩脱了随手刷摩托罗拉机型改状态栏的包直接让手机变了砖。\u003c/p\u003e\n\u003cp\u003e高一有次考试是和高二插班坐，看到高我一级的 Z 轻车熟路地在考前打开一体机柜子插了个迷你路由器进去，我大受震撼，第一次知道原来手机信号屏蔽仪不干扰 Wi-Fi 信号。后来在他 QQ 上见识到各种花里胡哨的玩机姿势，也是我大学报考计算机的原因之一。高一的时候还适逢学校 110 周年校庆，所有学生都拿纸片写了给未来自己的话然后统一放到时光胶囊里。记不清当时写的什么了，但愿学校打开的时候会记得通知大家。\u003c/p\u003e\n\u003cp\u003e上了高二学校不再强制住校（想住也住不下，就两栋宿舍楼），所以跟室友看海绵宝宝、打劫现哥的沙琪玛、一起庆祝「室庆节」、和寝管斗智斗勇等等这些多姿多彩的宿舍活动就没有了，学习成了生活的主要内容。每天就是上课、刷题、改错的不断循环，我一度压力大到当堂举手建议班主任不要再讲笑话了，赶紧开始讲练习题。可以想到，结果就是被叫家长咯。\u003c/p\u003e\n\u003cp\u003e高中是没什么时间关心时事的，语文组的老师们为了帮大家准备写作文的素材，会定期印一些阅读材料，有些还会特别念给我们，比如《南方周末》的新年献词。有次阅读材料里出现了周小平的文章（具体哪一篇我记不大清），文中的观点立刻激起大家的反对，后来语文老师竟然跟大家道了歉。\u003c/p\u003e\n\u003ch2 id=\"2015-年\" class=\"headerLink\"\u003e\n    \u003ca href=\"#2015-%e5%b9%b4\" class=\"header-mark\"\u003e\u003c/a\u003e2015 年\u003c/h2\u003e\u003cp\u003e如果要说大学最遗憾的事情，那就是我一直不知道学校图书馆有一个「读者荐购」的页面，导致我如果有什么想看的书就不得不直接在亚马逊上买或者来回花掉三个小时去陕西省图书馆。至于大学生活的其它部分，倒也没什么特别值得讲的，毕竟我比较喜欢独来独往。后来接触了 N 记的游戏，才开始慢慢开始有一些社交活动（感谢 35 和 BA！），也渐渐地通过游戏对西安这座城市多了些了解（关于这部分之后单独写一篇也说不定）。\u003c/p\u003e\n\u003cp\u003e大学的时候也有在骑车，大一学校对面的村里还有租赁单车的店铺，二三十块钱就能骑一天，后来「共享单车」出来之后这些店就倒闭了。不过我比较多骑的是西安公共自行车，一方面是骑着轻快，另一方面是定价很便宜（周内一小时内免费、周末全免费）。加上后来三河一山绿道完工之后，从学校出发三公里就能上绿道，幸福感拉满。\u003c/p\u003e\n\u003cp\u003e\u003cimg class=\"tw-inline\" loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/M4Ntrd.png   alt=\"公共自行车与泾河和渭河的交汇处合影\"  \u003e\u003c/p\u003e\n\u003cp\u003e大学的另一个乐趣是在寝室看剧，《疑犯追踪》里的 The Machine 太帅气了，我也是因为这个才在研究生转了深度学习。\u003c/p\u003e\n\u003ch2 id=\"2019-年\" class=\"headerLink\"\u003e\n    \u003ca href=\"#2019-%e5%b9%b4\" class=\"header-mark\"\u003e\u003c/a\u003e2019 年\u003c/h2\u003e\u003cp\u003e2019 年对很多人来说应该最怀念的一年，因为没有疫情的寸步难行。2019 年正好是我本科毕业的时候，趁着五一假期第一次坐了飞机，先到广州跟老梁会合，然后一起逛了澳门，又独自坐喷射飞航去了香港。那是我第二次去香港，现在回想竟是意外地见证了某些地方的最后时刻。\u003c/p\u003e\n\u003cp\u003e\u003cimg class=\"tw-inline\" loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/P1oNq7.png   alt=\"煲底\"  \u003e\u003c/p\u003e\n\u003cp\u003e研究生入学之后，因为之前已经修过大部分课程，就多了不少空余时间可以参与到一些社区的工作中，可以稍微讲一下的是 BS（反正你们也搜不到这个缩写是什么意思 XD）：由于在 BS 上特别话唠，来了广州之后被群友给认出来了。至于学业方面，多亏浩哥的前人栽树，我们才能用到自己实验室的 GPU（因为工作站是我在管理，这个博客上现在还有一些当时写的使用文档），但写文章做学术？深感我不是这块料。\u003c/p\u003e\n\u003cp\u003e2020 年初，我也被困在家里，但反而觉得特别幸运。因为当时有很多中港台的高校开始在线上办讲座，这在以前可是想都不敢想的机会！见到喜欢的讲者比如项飚、张洁平、刘绍华等，真的是会激动地睡不着。甚至还有幸参与到两次文字稿的整理中，也算有回馈到组织方和其它来不及参与的朋友们。\u003c/p\u003e\n\u003ch2 id=\"now\" class=\"headerLink\"\u003e\n    \u003ca href=\"#now\" class=\"header-mark\"\u003e\u003c/a\u003eNOW\u003c/h2\u003e\u003cp\u003e啊～～终于写到宜家！现在工作近一年，工作上虽然比较累但领导很 nice；生活上置办了很多种草很久的电子产品用起来很开心（特别表扬 Aqara 的 HomeKit 全家桶，平价好用）。之前有承诺过要拍骑行视频的，那就在这里插播一下吧：\u003c/p\u003e\n\u003cdiv class=\"bilibili\"\u003e\n    \u003ciframe src=\"//player.bilibili.com/player.html?bvid=BV16M4y117tL\u0026amp;page=1\u0026amp;autoplay=0\" scrolling=\"no\" border=\"0\" frameborder=\"no\" framespacing=\"0\" allowfullscreen=\"true\"\u003e\u003c/iframe\u003e\n\u003c/div\u003e\n\u003cp\u003e最后感谢可爱的同事们帮我过生日，多谢大家！\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "不止播客",
        "date_published" : "2023-03-04T13:45:45Z",
        "date_modified" : "2023-09-19T13:56:30Z",
        "id" : "https://xuchunqiu.com/podcast-and-more/",
        "url" : "https://xuchunqiu.com/podcast-and-more/",
        "summary": "先来扯点题外话吧，三个月没更新，本博客的草已经长的老高了。其实我有很多选题想写，但上班之后一直没有整块的时间来做这些事情。最近看到 早见 hayami 在个人频道里讲她的经历：\n",
        "content_html" : "\u003cp\u003e先来扯点题外话吧，三个月没更新，本博客的草已经长的老高了。其实我有很多选题想写，但上班之后一直没有整块的时间来做这些事情。最近看到 \u003ca href=\"https://hayami.typlog.io/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e早见 hayami\u003c/a\u003e 在个人频道里讲她的经历：\u003c/p\u003e\n\u003cblockquote\u003e\n  \u003cp\u003e大二时我第一次在赛博世界写作，运气好赶上知乎最好的年代，一下子有了七八万fo。虽然稚嫩但无比真诚，那是我第一个表达的装置。时至今日我仍在表达，是因为从互联网上得到了太多东西 —— 友情、爱情、工作机会、遥远相似的联结。再到后来公众号微博小红书b站，我用了很多平台，手动去中心化，但唯一不变的是「独立创作者」的身份。因为选题、策划、找嘉宾、做内容、后期、发布、同步……什么东西都是自己弄的（有多「独」呢？播客甚至连 co-host 都没有）。我努力学习各种技能，用 procreate 画设计，用 fcpx 剪视频，用 reaper 剪音频，用 markdown 写博客，搭个人网站、独立RSS ……\u003c/p\u003e\n\u003cp\u003e厉害吗？确实；累吗，累爆了…… 有时我几乎需要放弃所有社交、生活和运动的时间，在屏幕面前一坐一整天。然而即使是这样，即使你们看到很「高产」，我也只有2分是创作，剩余8分纯粹是对着电脑体力劳动。\u003c/p\u003e\n\u003cp\u003e如果没有在极限条件下创作的经历，我也不会去年在方舱这种连正常生活都没有的地方搞创作。所以，没有什么事情是偶然的。\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cp\u003e才意识到原来大家的博客都是挤时间来写的啊。那好，我也自己加班写咯。除草的第一篇，准备讲讲播客（Podcast）。\u003c/p\u003e\n\u003ch2 id=\"什么是播客\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e4%bb%80%e4%b9%88%e6%98%af%e6%92%ad%e5%ae%a2\" class=\"header-mark\"\u003e\u003c/a\u003e什么是播客？\u003c/h2\u003e\u003cp\u003e播客其实并不是什么新鲜的概念，在简体中文世界最早的播客节目大概是 飞猪 和 平客 的《反波 Antiwave》，开播于 \u003ca href=\"https://web.archive.org/web/20050505174059/http://www.antiwave.net/005095.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e2005 年 4 月 16 日\u003c/a\u003e，停播于 \u003ca href=\"https://web.archive.org/web/20100112041947/http://www.antiwave.net/2009/05/post_37.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e2009 年 5 月 6 日\u003c/a\u003e，有好事者在 2020 年成功复活了该节目（\u003ca href=\"https://antiwave.xyz/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e网站\u003c/a\u003e，\u003ca href=\"https://podcasts.apple.com/cn/podcast/%E5%8F%8D%E6%B3%A2-antiwave/id1501857775\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eApple Podcast\u003c/a\u003e，\u003ca href=\"https://antiwave.xyz/feed/podcast/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRSS\u003c/a\u003e）。\u003c/p\u003e\n\u003cp\u003e又扯远了……回到正题，简单讲播客就是可以点播的音频节目，听户可以通过导入 RSS 链接的方式订阅任意一档播客节目，当然现在大多数播客客户端还是比较友善的，会主动索引播客节目供你搜索。\u003c/p\u003e\n\u003cp\u003e好的，简介完毕，开始正题。\u003c/p\u003e\n\u003ch2 id=\"关注的第一个节目\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%85%b3%e6%b3%a8%e7%9a%84%e7%ac%ac%e4%b8%80%e4%b8%aa%e8%8a%82%e7%9b%ae\" class=\"header-mark\"\u003e\u003c/a\u003e关注的第一个节目\u003c/h2\u003e\u003cp\u003e根据 Apple Podcast 上的记录，我关注的一个节目是《内核恐慌》（\u003ca href=\"https://pan.icu/feed\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRSS\u003c/a\u003e，\u003ca href=\"https://podcasts.apple.com/hk/podcast/%E5%86%85%E6%A0%B8%E6%81%90%E6%85%8C/id928916244\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eApple Podcast\u003c/a\u003e，强烈推荐看一下他们使用 \u003ca href=\"https://3type.cn/fonts/dinkie_bitmap/index.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e丁卯点阵体\u003c/a\u003e 的官网 \u003ca href=\"https://pan.icu\" target=\"_blank\" rel=\"noopener noreferrer\"\u003epan.icu\u003c/a\u003e）。「内核恐慌」直译自 \u003ca href=\"https://en.wikipedia.org/wiki/Kernel_panic\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ekernel panic\u003c/a\u003e，吴涛 和 Rio 两位主播台风很活泼，早期一直聚焦计算机相关的话题，从串台专题「字弹字串」播出之后逐渐放飞（选题和更新频率层面），现在偏向计算机向的闲聊性质年更节目。顺便插一句，虽然是不同的人不同的节目，但 \u003ca href=\"https://liuyandong.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e刘延栋\u003c/a\u003e 的《忽软忽硬》（\u003ca href=\"https://liuyandong.com/feed/podcast\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRSS\u003c/a\u003e，上辈子叫：《软件那些事儿》）时常给我一种继承《内核恐慌》衣钵的感觉（除了栋哥一本正经地胡说八道的部分）。\u003c/p\u003e\n\u003ch2 id=\"每期都听的节目\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%af%8f%e6%9c%9f%e9%83%bd%e5%90%ac%e7%9a%84%e8%8a%82%e7%9b%ae\" class=\"header-mark\"\u003e\u003c/a\u003e每期都听的节目\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.thetype.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eThe Type\u003c/a\u003e 旗下的《字谈字畅》（\u003ca href=\"https://www.thetype.com/typechat/feed/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRSS\u003c/a\u003e，\u003ca href=\"https://podcasts.apple.com/us/podcast/%E5%AD%97%E8%B0%88%E5%AD%97%E7%95%85/id1041704528\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eApple Podcast\u003c/a\u003e）是唯一我每集都要听的节目，《字谈字畅》聚焦于字体排印，节目形式多样，包括对谈、全球字体新闻联播、听众反馈、现场演讲录音等。Show notes 塞满了参考链接，是我目前所知唯一一档使用音频文件原生章节、章节封面功能的节目，完全是我想象中播客应有的样子。另外我要 highlight 一下他们的开场词：\u003c/p\u003e\n\u003cblockquote\u003e\n  \u003cp\u003e虽然在荔枝 FM、网易云音乐、小宇宙、Spotify 这些平台上面都能收听到我们的节目，但还是强烈推荐大家使用泛用型的播客客户端来收听《字谈字畅》，毕竟我们是一档独立的播客而不依赖于任何一家平台。\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cp\u003e诚然这句话可能并不准确（详见 \u003ca href=\"https://dao.fm/2019/06/04/%e8%87%b4%e8%8b%b9%e6%9e%9c%e4%b8%ad%e5%9b%bd%e5%8c%ba%e5%90%ac%e5%8f%8b%e7%9a%84%e7%b4%a7%e6%80%a5%e9%80%9a%e7%9f%a5/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e津津乐道·致苹果中国区听友的紧急通知\u003c/a\u003e、\u003ca href=\"https://sspai.com/post/59878#:~:text=%E5%A6%82%E6%9E%9C%E4%B8%80%E6%A1%A3%E6%96%B0%E8%8A%82%E7%9B%AE%E8%A6%81%E5%9C%A8%E4%B8%AD%E5%9B%BD%E5%8C%BA%E7%9A%84%E8%8B%B9%E6%9E%9C%E6%92%AD%E5%AE%A2%E4%B8%AD%E8%A2%AB%E6%90%9C%E7%B4%A2%E5%88%B0%EF%BC%8C%E8%BF%98%E4%BC%9A%E7%BB%8F%E8%BF%87%E4%B8%80%E9%81%93%E9%A2%9D%E5%A4%96%E7%9A%84%E5%AE%A1%E6%A0%B8%EF%BC%8C%E6%97%B6%E9%97%B4%E5%9C%A8%E5%87%A0%E5%91%A8%E5%88%B0%E4%B8%A4%E4%B8%AA%E6%9C%88%E4%B9%8B%E9%97%B4%E4%B8%8D%E7%AD%89%E3%80%82\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e少数派·苹果播客过审了却在中国区搜不到？你可能需要再等等\u003c/a\u003e），但我依然很喜欢这样的表述。\u003c/p\u003e\n\u003cp\u003e爱听《字谈字畅》的另一个原因是我觉得字体排印恰好站在理工与人文的交叉点上，对技术如何映照现实的探讨很能满足我的好奇心。\u003c/p\u003e\n\u003cp\u003e2019 年机缘巧合之下参加了 The Type 在广州举办的《平面之道》线下放映，有幸蹭到了 The Type 小伙伴们的合影：\u003c/p\u003e\n\u003cp\u003e\u003cimg class=\"tw-inline\" loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/FSIJYK.png   alt=\"跟 The Type 小伙伴们的合影\"  \u003e\u003c/p\u003e\n\u003ch2 id=\"每期都要军备竞赛的节目\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%af%8f%e6%9c%9f%e9%83%bd%e8%a6%81%e5%86%9b%e5%a4%87%e7%ab%9e%e8%b5%9b%e7%9a%84%e8%8a%82%e7%9b%ae\" class=\"header-mark\"\u003e\u003c/a\u003e每期都要「军备竞赛」的节目\u003c/h2\u003e\u003cp\u003e《随机波动 StochasticVolatility》（\u003ca href=\"https://www.stovol.club/rss\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRSS\u003c/a\u003e，\u003ca href=\"https://podcasts.apple.com/hk/podcast/%E9%9A%8F%E6%9C%BA%E6%B3%A2%E5%8A%A8stochasticvolatility/id1504681387\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eApple Podcast\u003c/a\u003e，上辈子叫《剩余价值 SurplusValue》）是一档由张之琪、傅适野、黄月三位媒体人主持的节目，探讨社会现实与文化生活。「军备竞赛」是她们的原话，指三人在录节目前都要做好满满的笔记。我会形容她们很擅长通过处理那些没有答案的问题来给人力量，例如《剩余价值 SurplusValue》的最后一期《瘟疫、语言和具体的人：与历史学家罗新的聊天》。她们的 Newsletter 也写得真诚亲切，温暖人心。\u003c/p\u003e\n\u003ch2 id=\"其它媒体从业者的节目\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%85%b6%e5%ae%83%e5%aa%92%e4%bd%93%e4%bb%8e%e4%b8%9a%e8%80%85%e7%9a%84%e8%8a%82%e7%9b%ae\" class=\"header-mark\"\u003e\u003c/a\u003e其它媒体从业者的节目\u003c/h2\u003e\u003cp\u003e《新闻实验室》（\u003ca href=\"https://feed.xyzfm.space/xxkgbvrglujv\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRSS\u003c/a\u003e，\u003ca href=\"https://podcasts.apple.com/hk/podcast/%E6%96%B0%E9%97%BB%E5%AE%9E%E9%AA%8C%E5%AE%A4/id1579475103\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eApple Podcast\u003c/a\u003e）、《端開麥》（\u003ca href=\"https://podcasts.apple.com/us/podcast/%E7%AB%AF%E9%96%8B%E9%BA%A5/id1572879315\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eApple Podcast\u003c/a\u003e）、《〈The Real Story〉By 報導者》（\u003ca href=\"https://podcasts.apple.com/tw/podcast/the-real-story-by-%E5%A0%B1%E5%B0%8E%E8%80%85/id1525816185\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eApple Podcast\u003c/a\u003e）。\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "近况更新·工作三个月之后",
        "date_published" : "2022-11-13T07:22:59Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/a-little-update-about-myself/",
        "url" : "https://xuchunqiu.com/a-little-update-about-myself/",
        "summary": "这个博客之前放的都是之前在 notion 上记录的一些笔记，因为大师兄跟我讲说有一个技术博客对面试很加分，但其实面试的时候没有一个面试官跟我聊博客内容啊……总之现在也上班三个月了，是时候来水一篇生活记录了。\n",
        "content_html" : "\u003cp\u003e这个博客之前放的都是之前在 notion 上记录的一些笔记，因为大师兄跟我讲说有一个技术博客对面试很加分，但其实面试的时候没有一个面试官跟我聊博客内容啊……总之现在也上班三个月了，是时候来水一篇生活记录了。\u003c/p\u003e\n\u003ch2 id=\"工作\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%b7%a5%e4%bd%9c\" class=\"header-mark\"\u003e\u003c/a\u003e工作\u003c/h2\u003e\u003cp\u003e我入职的是广州黄埔区的一家生物初创公司的算法岗，入职两三天后赶上公司的开业典礼😂（其实公司是去年成立的，只是因为投资人的时间安排才拖到这个时间开）。工作时间的话是周一～周五早上 8:30 上班，中午 11:30 下班；下午 13:00 上班，晚上 18:00 下班。住的地方步行到公司需要接近 30 分钟，以前会骑车上下班（12 分钟），但后来想多点运动所以这两周基本都是步行了，上下班步行 + 中午饭后散步差不多就能满足手表上 760 大卡的活动量\n。\u003c/p\u003e\n\u003cp\u003e工作内容简单说就是用公司产出的数据训练预测模型。我们组的工作强度完全取决于上游给我们数据的速度，目前暂时是不加班的状态。但每天对着电脑 8 小时依然会让下班回家后眼睛特别累，所以午饭后我一般不午睡而是散步顺便放松\n一下眼睛。\u003c/p\u003e\n\u003ch2 id=\"生活\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e7%94%9f%e6%b4%bb\" class=\"header-mark\"\u003e\u003c/a\u003e生活\u003c/h2\u003e\u003cp\u003e说起来是在广州但黄埔区这地方如果坐公共交通工具大概要一个小时多，基本是和以前从学校到市区的差不多的时间，加上我是一个不喜欢逛街的人，所以平时几乎不去市区。周末的休闲活动就是到处骑车。广州的公路骑行环境真是有够糟糕的，几乎见不到单独的非机动车道，每次电动车、自行车都需要跟行人争路，在加上黄埔区这地方山多坡陡，骑起来实在不算享受。但不骑车我就失掉了唯一的周末运动量，所以还是在第一个月出粮后网上买了一辆硬尾山地车。\u003c/p\u003e\n\u003cp\u003e网上买车确实比线下门店更有性价比，但小问题还是挺多的比如蹭碟、变速滑档、坐垫太硬等，坑爹的是我推着新车去找出租屋附近的自行车修理店时老板拒绝了我，说你这个要到专门卖山地车的地方去修……无奈附近没有你说这种地方啊，所以我被迫学会了调蹭碟、调变速，现在已经攒了一个工具箱出来（其实大部分放的是换下来的物件）。\u003c/p\u003e\n\u003cp\u003e广州用 Strava 的人还挺多的，可惜 GZcycle 俱乐部里面全是公路/Gravel 大佬，均速都 30 km/h 起步，而且团骑起点都离我很远。所以周末我一般就自己规划个 40~60 km 的圈松松腿。上个月咬咬牙买了个和自行车一样贵的运动相机，如果有拍出好看的素材的话，未来在博客里发一下也说不定。\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "远程开发工具 JetBrains Gateway 初体验",
        "date_published" : "2022-03-08T01:37:19Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/jetbrains-gateway-first-experiences/",
        "url" : "https://xuchunqiu.com/jetbrains-gateway-first-experiences/",
        "summary": "在去年写完 Projector 的体验 之后，我就已经没有再使用过它了，原因如下：\n必须安装客户端才能使用快捷键 服务端非本机部署时，必须在客户端主机上安装自签证书才能使用复制粘贴功能 因为网络传输不畅而不时遇到画质压缩，就只能等它连接稳定后再继续操作，使用体验不够连贯 所以之后我又用回了通过 SSH 来部署代码和调用远程 Python 解释器的方法。去年年底，JetBrains 在其博客上发布了《隆重推出 JetBrains IDE 的远程开发》一文介绍了 Gateway 这一全新的远程开发工具。最近我终于有时间来安装体验一下 Gateway，本文就是对这一过程的简单回顾。\n",
        "content_html" : "\u003cp\u003e在去年写完 \u003ca href=\"https://xuchunqiu.me/jetbrains-projector-first-experiences/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eProjector 的体验\u003c/a\u003e 之后，我就已经没有再使用过它了，原因如下：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e必须安装客户端才能使用快捷键\u003c/li\u003e\n\u003cli\u003e服务端非本机部署时，必须在客户端主机上安装自签证书才能使用复制粘贴功能\u003c/li\u003e\n\u003cli\u003e因为网络传输不畅而不时遇到画质压缩，就只能等它连接稳定后再继续操作，使用体验不够连贯\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e所以之后我又用回了通过 SSH 来部署代码和调用远程 Python 解释器的方法。去年年底，JetBrains 在其博客上发布了《\u003ca href=\"https://blog.jetbrains.com/zh-hans/blog/2021/11/29/introducing-remote-development-for-jetbrains-ides/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e隆重推出 JetBrains IDE 的远程开发\u003c/a\u003e》一文介绍了 \u003ca href=\"https://www.jetbrains.com/zh-cn/remote-development/gateway/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eGateway\u003c/a\u003e 这一全新的远程开发工具。最近我终于有时间来安装体验一下 Gateway，本文就是对这一过程的简单回顾。\u003c/p\u003e\n\u003ch2 id=\"0x00-前言\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x00-%e5%89%8d%e8%a8%80\" class=\"header-mark\"\u003e\u003c/a\u003e0x00 前言\u003c/h2\u003e\u003cp\u003e在开始之前必须强调的是，与 Projector 可以部署社区版 IDE 不同，要想通过 Gateway 连接到远程 IDE 则必须有对应的 IDE 订阅。我是通过学生 edu 邮箱获得的 JetBrains 全家桶订阅。\u003c/p\u003e\n\u003cp\u003e更多关于 Gateway 的常见问题可以参阅官方博文：《\u003ca href=\"https://blog.jetbrains.com/zh-hans/blog/2021/12/03/dive-into-jetbrains-gateway/#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e深入了解 JetBrains Gateway\u003c/a\u003e》\u003c/p\u003e\n\u003ch2 id=\"0x01-下载与安装\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x01-%e4%b8%8b%e8%bd%bd%e4%b8%8e%e5%ae%89%e8%a3%85\" class=\"header-mark\"\u003e\u003c/a\u003e0x01 下载与安装\u003c/h2\u003e\u003cp\u003e支持的操作系统：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e服务端：Linux（\u003ca href=\"https://blog.jetbrains.com/zh-hans/blog/2021/12/03/dive-into-jetbrains-gateway/#:~:text=%E6%88%91%E4%BB%AC%E5%B0%86%E5%9C%A8%E6%9C%AA%E6%9D%A5%E6%B7%BB%E5%8A%A0%E5%AF%B9%20Windows%20%E5%92%8C%20macOS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%94%AF%E6%8C%81\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e未来会加入 Windows 和 macOS 的支持\u003c/a\u003e）\u003c/li\u003e\n\u003cli\u003e客户端：Linux、Windows、macOS（intel）、macOS（Apple Silicon）\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e与 Projector 不同，Gateway 服务端的安装完全通过客户端完成：\u003ca href=\"https://www.jetbrains.com/zh-cn/remote-development/gateway/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e下载地址\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e目前下载到的应该都 [抢先体验计划]^(Early Access Programs) 的版本，截止本文写就时最新的版本是 \u003ccode\u003e2022.1 Beta (221.5080.102)\u003c/code\u003e，安装好后的主界面如下；\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/4Osjk5.png\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e共有 SSH、JebBrains Space 和 共享链接 三种启动 Gateway 客户端的方式。区别如下：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSSH：只要提供远程 Linux 主机的 SSH 连接信息即可，也是本文使用的方式\u003c/li\u003e\n\u003cli\u003eJetBrains Space：团队开发协作平台，有提供 \u003ca href=\"https://www.jetbrains.com/space/buy/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e基础的免费方案\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCode With Me 链接 / Gateway 链接：前者是用于结对编程的 IDE 插件，同样有 \u003ca href=\"https://www.jetbrains.com/zh-cn/code-with-me/buy/#personal\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e基础的免费方案\u003c/a\u003e；后者的分享链接暂时还没有暴露出来，只有在连接到已有环境失败时才会显示出来\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e接下来就选择 SSH，提供远程 Linux 主机的连接信息：\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/dccPNb.png\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e成功后就可以选择需要在远程主机上安装哪个 IDE 服务端（在 Gateway 中被称为 Backend）。当前有 IDEA、CLion、GoLand、PhpStorm、PyCharm、Rider、RubyMine 和 WebStorm 可选（EAP 的 Gateway 看到的 IDE 也都是 [EAP]^(Early Access Programs) 或 [RC]^(Release Candidate) 版），但都不提供社区版的选项：\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/J7Xm4B.png\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e默认是直接从互联网下载 IDE Backend 安装到远程主机的 \u003ccode\u003e~/. cache/JetBrains/RemoteDev/dist\u003c/code\u003e，也可以手动上传安装包和指定安装路径：\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/ULOAnF.png\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e等待下载和安装过程完成，就会在本机自动打开 Gateway Client 了，与正常的 IDE 稍有区别的是多了一些连接状态的显示。整体上 Gateway 服务端的安装实在是比 Projector 省心太多。\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/UarbpT.png\"\u003e\n\u003c/figure\u003e\n\n\u003ch2 id=\"0x02-gateway-的使用感受\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x02-gateway-%e7%9a%84%e4%bd%bf%e7%94%a8%e6%84%9f%e5%8f%97\" class=\"header-mark\"\u003e\u003c/a\u003e0x02 Gateway 的使用感受\u003c/h2\u003e\u003ch3 id=\"优点\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e4%bc%98%e7%82%b9\" class=\"header-mark\"\u003e\u003c/a\u003e优点\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e比起在 \u003ccode\u003eSettings\u003c/code\u003e-\u003ccode\u003eTools\u003c/code\u003e-\u003ccode\u003eSSH Configurations\u003c/code\u003e 添加 SSH 配置的远程开发方式，Gateway 不需要手动同步本地和远程代码（因为它的代码只保存在远程）、配置远程解释器。\u003c/li\u003e\n\u003cli\u003e比起 Projector 或是 VNC 方案，Gateway 画面永远不会糊。\u003c/li\u003e\n\u003cli\u003e剪贴板共享功能开箱即用。\u003c/li\u003e\n\u003cli\u003e支持将远程主机端口映射到本地。这个主要是因为我的远程主机是一个 Docker 环境，在创建好后就不能添加端口映射了，但 Gateway Client 的 \u003ccode\u003eSettings\u003c/code\u003e-\u003ccode\u003eTools\u003c/code\u003e- \u003ccode\u003ePort Forwarding\u003c/code\u003e 里可以很方便地添加端口映射：\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/MVZl3P.png\"\u003e\n   \u003c/figure\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"缺点\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e7%bc%ba%e7%82%b9\" class=\"header-mark\"\u003e\u003c/a\u003e缺点\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e有时需要复制两遍。当在 Gateway Client 中打开的文本内容先复制再粘贴时，有机率粘上的是之前一次复制的内容，不过只要 Gateway Client 再复制一次就没问题了。\u003c/li\u003e\n\u003cli\u003e没有考虑非英文输入的情况。这篇博文就是通过 Gateway 完成的，在使用拼音输入中文的过程中，我注意到当打字速度过快时就会有前后「吃字」的问题。这可能是因为 Gateway 对于输入的每个字母都是立即传输的，但当汉字上屏后光标位置的瞬间跳动没有被正确处理。\u003c/li\u003e\n\u003cli\u003e上传文件功能缺失。拖动本地文件到 Gateway Client 的文件树上并不会有任何反应，如果这时能自动通过 SFTP 协议上传就好了。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"0x03-补充强制结束-ide-backend-的方法\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x03-%e8%a1%a5%e5%85%85%e5%bc%ba%e5%88%b6%e7%bb%93%e6%9d%9f-ide-backend-%e7%9a%84%e6%96%b9%e6%b3%95\" class=\"header-mark\"\u003e\u003c/a\u003e0x03 补充：强制结束 IDE Backend 的方法\u003c/h2\u003e\u003cp\u003e因为目前还处在 EAP 阶段，稳定度还不算太高，有时会遇到 IDE Backend 旧进程卡死新进程启动不起来的窘境，目前 Gateway 也没有提供强制重启之类的功能，只能手动去 kill 相关进程。在 Gateway 的 [最近 SSH 项目]^(Recent SSH Projects) 页面有一个终端图标，点进去执行以下命令：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# ps aux \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep -i pycharm \u003cspan class=\"p\"\u003e|\u003c/span\u003e awk \u003cspan class=\"s1\"\u003e\u0026#39;{print $2}\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e738\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e743\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e861\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e876\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e1138\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e2880\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 把以上所有进程号都杀掉\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# \u003cspan class=\"nb\"\u003ekill\u003c/span\u003e \u003cspan class=\"m\"\u003e738\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "JetBrains Projector 使用初体验",
        "date_published" : "2021-07-06T10:22:06Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/jetbrains-projector-first-experiences/",
        "url" : "https://xuchunqiu.com/jetbrains-projector-first-experiences/",
        "summary": "Projector 是 JetBrains 新推出的远程开发解决方案。实现上是在远程主机上部署 IDE 服务端然后在本地浏览器中或本地客户端中访问，本文记录了安装步骤和使用体验。\n0x00 可能有用的链接 官方博客介绍：使用 Projector 远程访问 IDE 官方文档：Projector documentation 安装方式 A（命令行）：JetBrains/projector-installer 安装方式 B（docker）：JetBrains/projector-docker Win/macOS/Linux 客户端下载：releases on JetBrains/projector-client 0x01 安装步骤本文是采用上面的安装方式 A 在运行 Ubuntu 18.04 的远程主机上运行，具体步骤直接参考链接 3。命令抄录如下：\n",
        "content_html" : "\u003cp\u003eProjector 是 JetBrains 新推出的远程开发解决方案。实现上是在远程主机上部署 IDE 服务端然后在本地浏览器中或本地客户端中访问，本文记录了安装步骤和使用体验。\u003c/p\u003e\n\u003ch2 id=\"0x00-可能有用的链接\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x00-%e5%8f%af%e8%83%bd%e6%9c%89%e7%94%a8%e7%9a%84%e9%93%be%e6%8e%a5\" class=\"header-mark\"\u003e\u003c/a\u003e0x00 可能有用的链接\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e官方博客介绍：\u003ca href=\"https://blog.jetbrains.com/zh-hans/blog/2021/03/25/projector-ide/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e使用 Projector 远程访问 IDE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e官方文档：\u003ca href=\"https://jetbrains.github.io/projector-client/mkdocs/latest/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eProjector documentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e安装方式 A（命令行）：\u003ca href=\"https://github.com/JetBrains/projector-installer\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eJetBrains/projector-installer\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e安装方式 B（docker）：\u003ca href=\"https://github.com/JetBrains/projector-docker\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eJetBrains/projector-docker\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWin/macOS/Linux 客户端下载：\u003ca href=\"https://github.com/JetBrains/projector-client/releases/tag/launcher-v1.0.1\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ereleases on JetBrains/projector-client\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"0x01-安装步骤\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x01-%e5%ae%89%e8%a3%85%e6%ad%a5%e9%aa%a4\" class=\"header-mark\"\u003e\u003c/a\u003e0x01 安装步骤\u003c/h2\u003e\u003cp\u003e本文是采用上面的安装方式 A 在运行 Ubuntu 18.04 的远程主机上运行，具体步骤直接参考链接 3。命令抄录如下：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# install python3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo apt install python3 python3-pip -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# check pip3 version\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# pip3 --version\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# if pip3 \u0026lt; 19\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# python3 -m pip install -U pip\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# install other packages\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo apt install libxext6 libxrender1 libxtst6 libfreetype6 libxi6 less -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# install Jetrains Projector\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# ip3 install projector-installer --user\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# use Projector to install IDE\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# projector install\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eChecking \u003cspan class=\"k\"\u003efor\u003c/span\u003e updates ... \u003cspan class=\"k\"\u003edone\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling IDE in quick mode\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e full customization you can rerun this \u003cspan class=\"nb\"\u003ecommand\u003c/span\u003e with \u003cspan class=\"s2\"\u003e\u0026#34;--expert\u0026#34;\u003c/span\u003e argument or edit this config later via \u003cspan class=\"s2\"\u003e\u0026#34;projector config edit\u0026#34;\u003c/span\u003e command.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           1. Idea_Community\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           2. Idea_Ultimate\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           3. PyCharm_Community\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           4. PyCharm_Professional\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           5. CLion\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           6. GoLand\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           7. DataGrip\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           8. PhpStorm\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           9. WebStorm\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          10. RubyMine\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          11. Rider\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eChoose IDE \u003cspan class=\"nb\"\u003etype\u003c/span\u003e or \u003cspan class=\"m\"\u003e0\u003c/span\u003e to exit: \u003cspan class=\"o\"\u003e[\u003c/span\u003e0-11\u003cspan class=\"o\"\u003e]\u003c/span\u003e: \u003cspan class=\"m\"\u003e4\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDo you want to \u003cspan class=\"k\"\u003eselect\u003c/span\u003e from Projector-tested IDE only? \u003cspan class=\"o\"\u003e[\u003c/span\u003ey/N\u003cspan class=\"o\"\u003e]\u003c/span\u003ey\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           1. PyCharm Professional 2019.3.4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           2. PyCharm Professional 2020.2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           3. PyCharm Professional 2020.3.3\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eChoose IDE number to install or \u003cspan class=\"m\"\u003e0\u003c/span\u003e to exit: \u003cspan class=\"o\"\u003e[\u003c/span\u003e0-3\u003cspan class=\"o\"\u003e]\u003c/span\u003e: \u003cspan class=\"m\"\u003e3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling PyCharm Professional 2020.3.3\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDownloading pycharm-professional-2020.3.3.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"c1\"\u003e##------------------------------------------------]    4%  00:04:15\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking pycharm-professional-2020.3.3.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"c1\"\u003e##################################################]  100%          \u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eConfiguration name: PyCharm\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eChecking \u003cspan class=\"k\"\u003efor\u003c/span\u003e updates ... \u003cspan class=\"k\"\u003edone\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo access IDE, open in browser \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        http://localhost:9999/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        http://127.0.0.1:9999/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        http://10.106.200.224:9999/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo see Projector logs in realtime run\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        tail -f \u003cspan class=\"s2\"\u003e\u0026#34;/root/.projector/configs/PyCharm/projector.log\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExit IDE or press Ctrl+C to stop Projector.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# start IDE\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# projector run\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e其中我遇到的坑主要是需要升级 pip3（\u0026gt;= 19）和 Python（\u0026gt;= 3.6），解决方案见下一章。\u003c/p\u003e\n\u003ch2 id=\"0x02-故障排除\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x02-%e6%95%85%e9%9a%9c%e6%8e%92%e9%99%a4\" class=\"header-mark\"\u003e\u003c/a\u003e0x02 故障排除\u003c/h2\u003e\u003ch3 id=\"更新完-pip3-后得到-syntaxerror-invalid-syntax\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%9b%b4%e6%96%b0%e5%ae%8c-pip3-%e5%90%8e%e5%be%97%e5%88%b0-syntaxerror-invalid-syntax\" class=\"header-mark\"\u003e\u003c/a\u003e更新完 pip3 后得到 \u003ccode\u003eSyntaxError: invalid syntax\u003c/code\u003e\u003c/h3\u003e\u003cp\u003e首先按照链接 3 的教程更新 pip3 到最新版本：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-2\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 检查现有 pip3 版本\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip3 --version\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 如果版本小于 19 就使用如下命令更新到最新版本\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epython3 -m pip install -U pip\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e再接着执行任何 \u003ccode\u003epip3 install\u003c/code\u003e 都会得到如下错误：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-3\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esys.stderr.write\u003cspan class=\"o\"\u003e(\u003c/span\u003ef\u003cspan class=\"s2\"\u003e\u0026#34;ERROR: {exc}\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                                   ^\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSyntaxError: invalid syntax\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e这个问题出现的原因是远程主机 Python = 3.5，但 pip 默认更新到最新的 pip 21.0 仅支持 Python 3.6+\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。我的选择是将 pip 更新到最后支持 Python 3.5 的那一版：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-4\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -fsSL -o- https://bootstrap.pypa.io/pip/3.5/get-pip.py \u003cspan class=\"p\"\u003e|\u003c/span\u003e python3.5\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e这就为接下来的问题埋下伏笔。现在回想此时正确的做法应是直接更新 Python。\u003c/p\u003e\n\u003ch3 id=\"尝试用-pip3-安装-projector-时遇到-error\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%b0%9d%e8%af%95%e7%94%a8-pip3-%e5%ae%89%e8%a3%85-projector-%e6%97%b6%e9%81%87%e5%88%b0-error\" class=\"header-mark\"\u003e\u003c/a\u003e尝试用 pip3 安装 Projector 时遇到 \u003ccode\u003eError\u003c/code\u003e\u003c/h3\u003e\u003cp\u003e在按照链接 3 的教程安装完一系列的依赖后，就可以正式安装 Projector：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-5\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip3 install projector-installer --user\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eERROR: Could not find a version that satisfies the requirement projector-installer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eERROR: No matching distribution found \u003cspan class=\"k\"\u003efor\u003c/span\u003e projector-installer\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e如果遇到以上错误，说明需要升级 Python 版本\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。教程见\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e，摘录如下：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-6\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo add-apt-repository ppa:deadsnakes/ppa\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install python3.8\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install python3.8-distutils\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 更新软链接\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo rm /usr/bin/python3\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo ln -s python3.8 /usr/bin/python3\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"projector-命令无效\" class=\"headerLink\"\u003e\n    \u003ca href=\"#projector-%e5%91%bd%e4%bb%a4%e6%97%a0%e6%95%88\" class=\"header-mark\"\u003e\u003c/a\u003e\u003ccode\u003eprojector\u003c/code\u003e 命令无效\u003c/h3\u003e\u003cp\u003e这个问题在链接 3 的 FAQ 部分已经进行了说明\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。是出在 \u003ccode\u003eprojector\u003c/code\u003e 的安装路径 \u003ccode\u003e~/.local/bin\u003c/code\u003e 没有加入到环境变量 \u003ccode\u003e$PATH\u003c/code\u003e 中，直接的 workaround 是使用完整路径启动 \u003ccode\u003eprojector\u003c/code\u003e：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-7\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e~/.local/bin/projector\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e不过一劳永逸的方法将添加环境变量 \u003ccode\u003e$PATH\u003c/code\u003e 的命令写入到 \u003ccode\u003e~/.profile\u003c/code\u003e：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-8\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;export PATH=\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ePATH\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e:~/.local/bin\u0026#34;\u003c/span\u003e \u0026gt;\u0026gt; ~/.profile\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e. ~/.profile\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"projector-run-尝试启动-ide-后很快出现报错日志\" class=\"headerLink\"\u003e\n    \u003ca href=\"#projector-run-%e5%b0%9d%e8%af%95%e5%90%af%e5%8a%a8-ide-%e5%90%8e%e5%be%88%e5%bf%ab%e5%87%ba%e7%8e%b0%e6%8a%a5%e9%94%99%e6%97%a5%e5%bf%97\" class=\"header-mark\"\u003e\u003c/a\u003e\u003ccode\u003eprojector run\u003c/code\u003e 尝试启动 IDE 后很快出现报错日志\u003c/h3\u003e\u003cp\u003e在初次使用 \u003ccode\u003eprojector install\u003c/code\u003e 完成 IDE 安装后会自动启动 IDE，使用完毕后使用 \u003ccode\u003eCtrl\u003c/code\u003e + \u003ccode\u003ec\u003c/code\u003e 退出。之后想再次启动已经安装好的 IDE 就需要使用 \u003ccode\u003eprojector run\u003c/code\u003e 命令，可能遇到在输出完 IDE 的访问链接后立刻打印报错日志的情况：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-9\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eChecking \u003cspan class=\"k\"\u003efor\u003c/span\u003e updates ... \u003cspan class=\"k\"\u003edone\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo access IDE, open in browser \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        http://localhost:9999/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        http://127.0.0.1:9999/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        http://10.106.200.224:9999/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo see Projector logs in realtime run\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        tail -f \u003cspan class=\"s2\"\u003e\u0026#34;/root/.projector/configs/PyCharm/projector.log\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExit IDE or press Ctrl+C to stop Projector.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--------------------- Projector log session start. Installer version: 1.1.1 Run config: PyCharm - 2021-04-07 08:02:35.367158\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eDEBUG\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: IdeState :: Starting attempts to attach IJ injector agent\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eDEBUG\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: IdeState :: Starting attempts to initialize IDEA: fix AA and disable smooth scrolling \u003cspan class=\"o\"\u003e(\u003c/span\u003eat start\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eINFO\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: ProjectorServer :: ProjectorServer is starting on host 0.0.0.0/0.0.0.0 and port \u003cspan class=\"m\"\u003e9999\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eDEBUG\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: IdeState :: Starting attempts to Getting IDE colors\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eINFO\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: ProjectorServer :: WebSocket SSL is disabled\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eINFO\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: ProjectorServer :: Server started on host 0.0.0.0/0.0.0.0 and port \u003cspan class=\"m\"\u003e9999\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eDEBUG\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: ProjectorServer :: Daemon thread starts\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eDEBUG\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: IdeState :: Starting attempts to search \u003cspan class=\"k\"\u003efor\u003c/span\u003e editors\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIDE has not been initialized yet\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eDEBUG\u003cspan class=\"o\"\u003e]\u003c/span\u003e :: ProjectorServer :: Daemon thread finishes\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e这个问题可能是之前的 IDE 没有成功退出导致的\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e（虽然 log 看起来并非如此），杀掉旧进程就可以了：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-10\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot@machine:~# ps aux \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep -i pycharm\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot       \u003cspan class=\"m\"\u003e966\u003c/span\u003e 36.5  0.2 \u003cspan class=\"m\"\u003e8513048\u003c/span\u003e \u003cspan class=\"m\"\u003e286408\u003c/span\u003e pts/0  Sl   07:38   9:51 /root/.projector/apps/pycharm-2020.3.3/jbr/bin/java -classpath /r\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot      \u003cspan class=\"m\"\u003e2102\u003c/span\u003e  0.0  0.0  \u003cspan class=\"m\"\u003e13216\u003c/span\u003e  \u003cspan class=\"m\"\u003e1064\u003c/span\u003e pts/0    S+   08:05   0:00 grep --color\u003cspan class=\"o\"\u003e=\u003c/span\u003eauto -i pycharm\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot@machine:~# \u003cspan class=\"nb\"\u003ekill\u003c/span\u003e \u003cspan class=\"m\"\u003e966\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot@machine:~# ps aux \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep -i pycharm\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot      \u003cspan class=\"m\"\u003e2113\u003c/span\u003e  0.0  0.0  \u003cspan class=\"m\"\u003e13216\u003c/span\u003e  \u003cspan class=\"m\"\u003e1044\u003c/span\u003e pts/0    S+   08:06   0:00 grep --color\u003cspan class=\"o\"\u003e=\u003c/span\u003eauto -i pycharm\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot@machine:~# projector run\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"0x03-存在的问题\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x03-%e5%ad%98%e5%9c%a8%e7%9a%84%e9%97%ae%e9%a2%98\" class=\"header-mark\"\u003e\u003c/a\u003e0x03 存在的问题\u003c/h2\u003e\u003cp\u003e此处仅列举我在实际体验中觉得很糟心的地方，其它问题可以在链接 2 的 Known problems\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e 部分查看。\u003c/p\u003e\n\u003ch3 id=\"快捷键冲突和剪贴板共享\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e5%86%b2%e7%aa%81%e5%92%8c%e5%89%aa%e8%b4%b4%e6%9d%bf%e5%85%b1%e4%ba%ab\" class=\"header-mark\"\u003e\u003c/a\u003e快捷键冲突和剪贴板共享\u003c/h3\u003e\u003cp\u003eProjector 的服务端是安装在远程 Linux 环境中，然后通过本地浏览器或下载链接 5 的客户端使用（这里需要提一句的是 JetBrains 的 IDE 插件市场中也上架了 \u003ccode\u003eProjector\u003c/code\u003e\u003csup id=\"fnref:7\"\u003e\u003ca href=\"#fn:7\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e7\u003c/a\u003e\u003c/sup\u003e，但这个是把本机 IDE 当服务端来用的）。\u003c/p\u003e\n\u003cp\u003e当通过浏览器访问 Projector 时，IDE 的快捷键会与浏览器本身的快捷键冲突，例如选择代码块的快捷键 \u003ccode\u003eCtrl\u003c/code\u003e + \u003ccode\u003ew\u003c/code\u003e\u003csup id=\"fnref:8\"\u003e\u003ca href=\"#fn:8\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e8\u003c/a\u003e\u003c/sup\u003e在 Chromium/Firefox/Safari 中是关闭当前标签页。所以为了使用快捷键还有复制粘贴功能，最好还是下载独立的 Projector 客户端。\u003c/p\u003e\n\u003ch3 id=\"启用自签证书的-https\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%90%af%e7%94%a8%e8%87%aa%e7%ad%be%e8%af%81%e4%b9%a6%e7%9a%84-https\" class=\"header-mark\"\u003e\u003c/a\u003e启用自签证书的 HTTPS\u003c/h3\u003e\u003cp\u003e本文初次写成于 2021 年 3 月，但当 4 月我在另一台机器上部署完 Projector 后发现即使用 Projector 客户端去连也不能将其中的文本复制粘贴到其它程序中。在 JetBrains 的 bug 跟踪系统 YouTrack 上有人\u003csup id=\"fnref:9\"\u003e\u003ca href=\"#fn:9\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e9\u003c/a\u003e\u003c/sup\u003e解释是新版本的服务端后只有在 localhost 部署或启用 HTTPS 后才能跨程序复制粘贴，同时给出了对于 \u003ca href=\"https://jetbrains.github.io/projector-client/mkdocs/latest/ij_user_guide/accessing/#incomplete-clipboard-synchronization\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e不完整剪贴板同步实现过程的官方文档\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e就个人+内网使用来说，自签 HTTPS 证书是比较简单的方式。此处给出自签证书的启用方法，至于使用可信任证书颁发机构给域名颁发的证书，可以参考链接 3 自述文件的 FAQ 部分\u003csup id=\"fnref:10\"\u003e\u003ca href=\"#fn:10\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e10\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e在命令行中交互式启动自签 HTTPS 证书：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-11\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 所有可用命令\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eprojector config \u003cspan class=\"o\"\u003e(\u003c/span\u003e--help\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 列出所有配置的名称\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eprojector config list\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 展示选定配置的详情\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eprojector config show\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 这里的信息要比 ~/.projector/configs/PyCharm/config.ini 更详细，\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 也有一个布尔的 \u0026#34;Projector uses secure config (https/wss)= 0\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 交互式修改配置\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eprojector config edit\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 只需给 Use secure connection? 一个 y 的回答\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e修改完毕后再 \u003ccode\u003eprojector run\u003c/code\u003e 就能看到终端中提示要从 \u003ccode\u003e~/.projector/ssl/ca.crt\u003c/code\u003e 安装证书，有意思的是这个证书下载下来是 0KB，无法安装。我最后是通过直接在 Chrome 访问 \u003ccode\u003ehttps://\u0026lt;projector-server-address\u0026gt;:\u0026lt;projector-port\u0026gt;\u003c/code\u003e -\u0026gt; 导出证书 -\u0026gt; 文件管理器安装。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/65869296/installing-pip-is-not-working-in-python-3-6\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://stackoverflow.com/questions/65869296/installing-pip-is-not-working-in-python-3-6\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/PRJ-302\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://youtrack.jetbrains.com/issue/PRJ-302\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/58591889/how-i-can-upgrade-my-ubuntu-python3-7-to-python3-8-latest-version\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://stackoverflow.com/questions/58591889/how-i-can-upgrade-my-ubuntu-python3-7-to-python3-8-latest-version\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/JetBrains/projector-installer#projector-command-is-unavailable\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://github.com/JetBrains/projector-installer#projector-command-is-unavailable\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/61236544/clion-pycharm-phpstorm-intellij-wont-start-says-ide-has-not-been-initialized/61237140#61237140\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://stackoverflow.com/questions/61236544/clion-pycharm-phpstorm-intellij-wont-start-says-ide-has-not-been-initialized/61237140#61237140\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003e\u003ca href=\"https://jetbrains.github.io/projector-client/mkdocs/latest/ij_user_guide/jetbrains/#known-problems\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://jetbrains.github.io/projector-client/mkdocs/latest/ij_user_guide/jetbrains/#known-problems\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:7\"\u003e\n\u003cp\u003e\u003ca href=\"https://plugins.jetbrains.com/plugin/16015-projector\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://plugins.jetbrains.com/plugin/16015-projector\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:7\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:8\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.jetbrains.com/help/idea/working-with-source-code.html#editor_code_selection\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.jetbrains.com/help/idea/working-with-source-code.html#editor_code_selection\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:8\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:9\"\u003e\n\u003cp\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/PRJ-426#focus=Comments-27-4816576.0-0\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://youtrack.jetbrains.com/issue/PRJ-426#focus=Comments-27-4816576.0-0\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:9\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:10\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/JetBrains/projector-installer#secure-connection\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://github.com/JetBrains/projector-installer#secure-connection\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:10\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "什么是 SCI",
        "date_published" : "2020-11-11T10:29:37+08:00",
        "date_modified" : "2023-09-19T13:56:30Z",
        "id" : "https://xuchunqiu.com/what-is-sci/",
        "url" : "https://xuchunqiu.com/what-is-sci/",
        "summary": " 影响因子 Impact Factor\n是美国科学情报研究所（ISI）的 期刊引证报告（JCR）中的一项数据。指的是某一期刊的文章在特定年份或时期被引用的频率，是衡量 学术期刊 影响力的一个重要指标。由美国科学情报研究所创始人尤金·加菲得在 1960 年代创立，其后为 文献计量学 的发展带来了一系列重大革新。\n",
        "content_html" : "\u003ch1 id=\"影响因子\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%bd%b1%e5%93%8d%e5%9b%a0%e5%ad%90\" class=\"header-mark\"\u003e\u003c/a\u003e影响因子\u003c/h1\u003e\u003cblockquote\u003e\n  \u003cp\u003eImpact Factor\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cp\u003e是美国科学情报研究所（ISI）的 \u003ca href=\"https://zh.wikipedia.org/wiki/%e6%9c%9f%e5%88%8a%e5%bc%95%e8%af%81%e6%8a%a5%e5%91%8a\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e期刊引证报告\u003c/a\u003e（JCR）中的一项数据。指的是某一期刊的文章在特定年份或时期被引用的频率，是衡量 \u003ca href=\"https://zh.wikipedia.org/wiki/%e5%ad%a6%e6%9c%af%e6%9c%9f%e5%88%8a\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e学术期刊\u003c/a\u003e 影响力的一个重要指标。由美国科学情报研究所创始人尤金·加菲得在 1960 年代创立，其后为 \u003ca href=\"https://zh.wikipedia.org/wiki/%e6%96%87%e7%8c%ae%e8%ae%a1%e9%87%8f%e5%ad%a6\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e文献计量学\u003c/a\u003e 的发展带来了一系列重大革新。\u003c/p\u003e\n\u003cp\u003e自 1975 年以来，每年定期发布于《\u003ca href=\"https://clarivate.com/webofsciencegroup/zh-hans/solutions/journal-citation-reports/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e期刊引证报告\u003c/a\u003e》（JCR）。\u003c/p\u003e\n\u003cp\u003e影响指数即某期刊前两年（S, T）发表的论文在统计当年（U）的被引用总次数 X（前两年总被引次数）\u003cstrong\u003e除以\u003c/strong\u003e该期刊在前两年（S, T）内发表的论文总数 Y（前两年总发文量）。这是一个国际上通行的期刊评价指标。公式为：\u003c/p\u003e\n\u003cp\u003e$$I F_{U}=\\frac{X_{(S, T)}}{Y_{(S, T)}}$$\u003c/p\u003e\n\u003ch1 id=\"sci-科学引文索引\" class=\"headerLink\"\u003e\n    \u003ca href=\"#sci-%e7%a7%91%e5%ad%a6%e5%bc%95%e6%96%87%e7%b4%a2%e5%bc%95\" class=\"header-mark\"\u003e\u003c/a\u003eSCI 科学引文索引\u003c/h1\u003e\u003cblockquote\u003e\n  \u003cp\u003eScience Citation Index\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cp\u003e是由美国 \u003ca href=\"https://zh.wikipedia.org/w/index.php?title=%e7%a7%91%e5%ad%a6%e8%b3%87%e8%a8%8a%e7%a0%94%e7%a9%b6%e6%89%80\u0026amp;action=edit\u0026amp;redlink=1\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e科学资讯研究所\u003c/a\u003e（Institute for Scientific Information，简称ISI）于 1960 年上线投入使用的一部期刊文献检索工具（\u003ca href=\"https://mjl.clarivate.com/home\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e点我使用\u003c/a\u003e），其出版形式包括印刷版期刊和光盘版及联机数据库。科学引文索引由 \u003ca href=\"https://clarivate.com.tw/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e科睿唯安\u003c/a\u003e 公司（Clarivate Analytics）运营。\u003c/p\u003e\n\u003cp\u003e收录范围：自然科学的基础研究领域\u003c/p\u003e\n\u003ch2 id=\"web-of-science\" class=\"headerLink\"\u003e\n    \u003ca href=\"#web-of-science\" class=\"header-mark\"\u003e\u003c/a\u003eWeb of Science™\u003c/h2\u003e\u003cblockquote\u003e\n  \u003cp\u003e科睿唯安当前涉及的领域包括：科学与学术研究、生命科学与制药、专利与研发创新、产业法规与标准、网域名称管理、商标检索与保护。Web of Science™ 是其在 科学与学术研究 领域提供的「最受信任的、独立于出版商的全球引文数据库（the world’s most trusted publisher-independent global citation database）」；而 Journal Citation Reports 是其在 科学与学术研究 领域 依托于 Web of Science 的在研究分析与评估方面的产品。它早先的名称是 Web of Knowledge\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cp\u003eWeb of Science™ 是一个基于 Web 而构建的动态的数字研究环境，通过强大的检索技术和基于内容的连接能力，将高质量的信息资源、独特的信息分析工具和专业的信息管理软件无缝地整合在一起，兼具知识的检索、提取、分析、评价、管理与发表等多项功能\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。在内容上，\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e以 Web of Science™ 核心合集（著名的三大引文索引 Science Citation Index Expanded®, Social Science Citation Index®, Arts \u0026amp; Humanities Citation Index®）为核心\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e，凭藉独特的引文检索机制和强大的交叉检索功能，有效地整合了：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e学术期刊（Web of Science™ 核心合集）\u003c/li\u003e\n\u003cli\u003e技术专利（Derwent Innovations Index）\u003c/li\u003e\n\u003cli\u003e化学反应（Chemistry）\u003c/li\u003e\n\u003cli\u003e研究基金（eSearch）\u003c/li\u003e\n\u003cli\u003eInternet资源（Current Web Contents）\u003c/li\u003e\n\u003cli\u003e学术分析与评价工具（Essential Science Indicators）\u003c/li\u003e\n\u003cli\u003e学术社区（\u003ca href=\"http://HighlyCited.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eHighlyCited.com\u003c/a\u003e）\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e及其它重要的学术信息资源，提供了自然科学、工程技术、生物医学、社会科学、艺术与人文等多个领域中高质量、可信赖的学术信息。Web of Science™ 平台上所有数据库中的信息都是经过精心挑选的，它只收录那些对研究者有用的出版物、网站内容和其它学术资源。这些学术信息是由许多不同的媒介以不同的格式提供的。这些媒介形式包括期刊（印刷版或电子版）、书籍和会议录、网站内容，以及 ISI 外部的数据库。\u003c/p\u003e\n\u003ch3 id=\"web-of-science-core-collection-核心合辑2\" class=\"headerLink\"\u003e\n    \u003ca href=\"#web-of-science-core-collection-%e6%a0%b8%e5%bf%83%e5%90%88%e8%be%912\" class=\"header-mark\"\u003e\u003c/a\u003eWeb of Science Core Collection™ 核心合辑\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/h3\u003e\u003cblockquote\u003e\n  \u003cp\u003e遴选标准：\u003ca href=\"https://solutions.clarivate.com.cn/products/web-of-science%e6%a0%b8%e5%bf%83%e5%90%88%e9%9b%86%e9%81%b4%e9%80%89%e6%a0%87%e5%87%86/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ezh-cn\u003c/a\u003e、\u003ca href=\"https://clarivate.com.tw/products/web-of-science/journal-selection-process/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ezh-tw\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e重点摘录：普通期刊 →（编辑品质评估成功）→ ESCI →（编辑影响力评估成功）→ SCIE/SSCI/AHCI，其中箭头也可反向——即SCIE也可掉回ESCI甚至普通期刊\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cp\u003e拥有来自全球 18,000 多种高影响力的学术期刊、180,000 多种会议论文、以及 80,000 多种学术书籍的多学科研究资料。通过百年以上的丰富文献资源以及超过十亿的引文网络，您可以在任何领域放心地检索并发现完整的引文网络。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eScience Citation Index Expanded™ (SCIE)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e涵盖 178 个学科的 9300 多种主流期刊。— 1900 年至今。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSocial Sciences Citation Index™ (SSCI)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e涵盖 58 个社会科学学科的 3,400 多种期刊，以及从 3,500 种世界顶尖期刊中筛选的内容。— 1900 年至今。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eArts \u0026amp; Humanities Citation Index™ (A\u0026amp;HCI)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e超过 1,800 种艺术与人文领域的期刊，以及从 250 多种自然科学和社会科学期刊中筛选的内容。— 1975 年至今。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEmerging Sources Citation Index™ (ESCI)\u003c/p\u003e\n\u003cp\u003e包含了 5,000 多种期刊的 ESCI，旨在捕捉高影响力文献之外的自然科学、社会科学和人文学科领域的趋势与发展。科睿唯安编辑团队所遴选并评审的期刊通常会在全球得到相关领域的意见领袖、基金资助和评估机构的重视。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBook Citation Index™ (BKCI)\u003c/p\u003e\n\u003cp\u003e索引了超过 80,000 种编辑精选的图书，且每年增加 10,000 种新书。— 2005 年至今。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConference Proceedings Citation Index (CPCI)\u003c/p\u003e\n\u003cp\u003e该多学科索引能让人们以最快的方式从 180,000 多种会议论文集中获得最前沿、有影响力的研究。— 1990 年至今。\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"区域性资料库3\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%8c%ba%e5%9f%9f%e6%80%a7%e8%b5%84%e6%96%99%e5%ba%933\" class=\"header-mark\"\u003e\u003c/a\u003e区域性资料库\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eChinese Science Citation Database™（中国科学引文资料库）\u003c/p\u003e\n\u003cp\u003e科睿唯安与中国科学院合作，将中国科学引文资料库（Chinese Science Citation Database™）嵌入到 Web of Science™ 平台中，让全世界更多的科学研究人员瞭解中国的科学研究发展及动态。作为 Web of Science™ 平台中首个非英文产品，该资料库收录了约 1,100 种中国出版的科学与工程核心期刊，共有近 400 万条论文记录，1,700 万条引文记录。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRussian Science Citation Index™\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKCI Korean Journal Database™\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSciELO Citation Index™\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"journal-citation-reports-期刊引证报告4\" class=\"headerLink\"\u003e\n    \u003ca href=\"#journal-citation-reports-%e6%9c%9f%e5%88%8a%e5%bc%95%e8%af%81%e6%8a%a5%e5%91%8a4\" class=\"header-mark\"\u003e\u003c/a\u003eJournal Citation Reports™ 期刊引证报告\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e\u003c/h2\u003e\u003cp\u003e全球每年有上千万的学术研究著作发表，其中的文献引用更是巨量。引文所串起的连结都具有意义，因为这是研究学者悉心阐述其研究发现的轨迹，而每一本他们所引用与选择的期刊也代表著他们重视该期刊为自己的研究发现所带来的价值。Journal Citation Reports™ (JCR) 汇总了 Web of Science™ 核心合辑期刊的引文数据，呈现了庞大的学术网络彼此之间的关联与研究脉络。\u003c/p\u003e\n\u003cp\u003e最新版的 JCR 显著加强了对 Journal Impact Factor™ (JIF) 和其他指标的透明度，增加了论文层面的分析和解读，为用户全面瞭解期刊表现，提供了新的分析角度和更加丰富而详尽的资讯。这些新的分析角度更好地利用了引文资料库中的资料和指标，能协助研究人员、出版商、期刊编辑、图书馆员和基金资助者进一步地瞭解期刊对各种用户的核心价值。\u003c/p\u003e\n\u003cp\u003e每本被 JCR 收录的期刊均符合 Web of Science 核心合辑的期刊遴选标准，JCR仅显示被 Science Citation Index Expanded™ (SCIE) 和 Social Sciences Citation Index™ (SSCI) 索引的期刊，以便您可以快速找到自然科学和社会科学领域最具影响力的期刊清单。\u003c/p\u003e\n\u003ch3 id=\"指标5\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%8c%87%e6%a0%875\" class=\"header-mark\"\u003e\u003c/a\u003e指标\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e\u003c/h3\u003e\u003cp\u003e期刊引证报告透过量化引用文献的统计资讯，于每年度发表下列评比指标并予以排名：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e年度影响因子（Impact Factor）：透过该期刊“前两年”所发表文章总数，与“前两年”的文章在“该年度”被引用的总次数计算而得出。当影响因子的数字越高，代表此期刊的文章被引用次数越多，即此期刊在学术界的影响力越大。一般而言期刊的影响因子越高，则代表此期刊的学术品质越佳。值得注意的是，影响因子虽然是期刊本身评价的指标，但不能作为该期刊中单篇论文影响力的依据、或是论文作者的评价。\u003c/li\u003e\n\u003cli\u003e5年影响因子（5-Year Impact Factor）：透过该期刊于“前五年”所发表文章总数，与“前五年”的文章在“该年度”被引用的总次数计算而得出。此指标类似于年度影响因子，但计算时间较长，可以代表该期刊在长时间下的影响能力。\u003c/li\u003e\n\u003cli\u003e立即指数（Immediacy Index）：为该期刊当年度所出版文章的平均被引用次数。此指标可代表该期刊在当年度影响力的大小。\u003c/li\u003e\n\u003cli\u003e被引半衰期（Cited Half-Life）：该期刊的总被引用次数衰退一半所需要的年数（此数据只有在总被引次数大于100时提供）。此指标可代表该期刊文章影响力衰退的速度，其数值越大则代表影响力持续较久，数值越小则代表影响力较小。通常社会科学领域期刊的被引用半衰期相较来的长。\u003c/li\u003e\n\u003cli\u003e总被引用次数（Total Cites）：为该期刊自从被收录进期刊引证报告后的总被引用次数。\u003c/li\u003e\n\u003cli\u003e文章总数（Current Articles）：为该期刊自从被收录进期刊引证报告后的文章总数。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch1 id=\"engineering-index-工程索引\" class=\"headerLink\"\u003e\n    \u003ca href=\"#engineering-index-%e5%b7%a5%e7%a8%8b%e7%b4%a2%e5%bc%95\" class=\"header-mark\"\u003e\u003c/a\u003eEngineering Index 工程索引\u003c/h1\u003e\u003cp\u003e是世界著名的检索工具，由美国工程信息公司编辑出版发行，该公司始建于 1884 年，是世界上最大的工程信息提供者之一，早期出版印刷版、缩微版等信息产品，1969 年开始提供 EI Compendex 数据库服务。EI Compendex：对应的印刷版检索刊为《工程索引》，是最常用的文摘数据库之一，侧重于工程技术领域的文献的报道。1992 年开始收录中国期刊，1998 年清华大学建立了 EI 中国镜像站。\u003c/p\u003e\n\u003cp\u003eEI数据来源于 3 千种工程类期刊以及 9 万多种会议录，每周更新\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e。目前主要有三个版本：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEi Compendex 光盘数据库\u003c/li\u003e\n\u003cli\u003eEi Compendex Web数据库\u003c/li\u003e\n\u003cli\u003eEngineering Village 2 工程信息村\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e其中 Ei Village 2 包括：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCompendex\u003c/li\u003e\n\u003cli\u003eEngineering Index Backfile 工程索引回放文件\u003c/li\u003e\n\u003cli\u003eInspec\u003c/li\u003e\n\u003cli\u003eInspec Archive\u003c/li\u003e\n\u003cli\u003eNTIS 国家医学研究所\u003c/li\u003e\n\u003cli\u003eReferex Engineering\u003c/li\u003e\n\u003cli\u003eENGnetBASE\u003c/li\u003e\n\u003cli\u003ePatents from USPTO and esp@cenet\u003c/li\u003e\n\u003cli\u003eGlobalSpec\u003c/li\u003e\n\u003cli\u003eScirus\u003c/li\u003e\n\u003cli\u003eEEVL\u003c/li\u003e\n\u003cli\u003eLexisNexis News\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"参考文献\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%8f%82%e8%80%83%e6%96%87%e7%8c%ae\" class=\"header-mark\"\u003e\u003c/a\u003e参考文献\u003c/h1\u003e\u003cp\u003e\u003ca href=\"http://tul.blog.ntu.edu.tw/archives/4797\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eImpact Factor、引用次數與學術評鑑相關問題懶人包\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://tul.blog.ntu.edu.tw/archives/8330\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eWoS 與 WOK、JCR、ESI 之間的關係？\u003c/a\u003e：\u003c/p\u003e\n\u003cp\u003e\u003cimg class=\"tw-inline\" loading=\"lazy\" src=https://image.assets.xuchunqiu.com/img/2023/09/XgKwgg.png   alt=\"一张描述 WoS、JCR、ESI关系的树状图。图片内容：WoS（含SCIE、SSCI、A\u0026amp;HCI等）为树根，左分叉为JCR（运用SCIE、SSCI资料，提供Impact Factor等期刊评鉴指标），右分叉为ESI（同样运用SCIE、SSCI资料，筛选高被引的文章、机构、期刊、学者）\"  \u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://tul.blog.ntu.edu.tw/archives/8333\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSCI 與 SCIE 的區別\u003c/a\u003e：1. SCI为光盘形式，现已停止发行发布；后者为网页服务 2. 两者评选标准相同\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://tul.blog.ntu.edu.tw/archives/2598\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e如何得知期刊是否收錄於 Web of Science 資料庫？\u003c/a\u003e：\u003ca href=\"https://mjl.clarivate.com/home\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eWOS’s Master Journal List\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://tul.blog.ntu.edu.tw/archives/4627\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e如何得知某期刊是否被EI收錄？\u003c/a\u003e：\u003ca href=\"https://www.engineeringvillage.com/search/quick.url\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eEi Village(Source title)\u003c/a\u003e or 下载（定期更新的）\u003ca href=\"https://www.elsevier.com/solutions/engineering-village/content/compendex\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eEi Compendex 收录清单\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://tul.blog.ntu.edu.tw/archives/1831\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e如何查詢期刊之Impact Factor\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://solutions.clarivate.com.cn/products/web-of-science%E6%A0%B8%E5%BF%83%E5%90%88%E9%9B%86%E9%81%B4%E9%80%89%E6%A0%87%E5%87%86/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e科睿唯安网站上关于 Web of Science™ 核心合集的遴选标准\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://clarivate.com.tw/products/web-of-science/databases\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e科睿唯安网站上关于 Web of Science™ 核心合辑的介绍\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://clarivate.com.tw/products/web-of-science/databases#standard-text-3:~:text=%e5%8d%80%e5%9f%9f%e6%80%a7%e8%b3%87%e6%96%99%e5%ba%ab\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e科睿唯安网站上关于 Web of Science™ 核心合辑中区域性资料库的介绍\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"https://clarivate.com.tw/products/journal-citation-reports\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e科睿唯安网站上关于期刊引证报告的介绍\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"https://zh.wikipedia.org/wiki/%e6%9c%9f%e5%88%8a%e5%bc%95%e8%af%81%e6%8a%a5%e5%91%8a#%e6%8c%87%e6%a8%99:~:text=%e6%8c%87%e6%a0%87[%e7%bc%96%e8%be%91],%e6%9c%9f%e5%88%8a%e5%bc%95%e8%af%81%e6%8a%a5%e5%91%8a%e9%80%8f%e8%bf%87%e9%87%8f%e5%8c%96%e5%bc%95%e7%94%a8%e6%96%87%e7%8c%ae%e7%9a%84%e7%bb%9f%e8%ae%a1%e8%b5%84%e8%ae%af%ef%bc%8c%e4%ba%8e%e6%af%8f%e5%b9%b4%e5%ba%a6%e5%8f%91%e8%a1%a8%e4%b8%8b%e5%88%97%e8%af%84%e6%af%94%e6%8c%87%e6%a0%87%e5%b9%b6%e4%ba%88%e4%bb%a5%e6%8e%92%e5%90%8d%ef%bc%9a\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e维基百科条目「期刊引证报告」中关于指标的解释\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.ei-cn.com/About/5.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e第三方网站「EI学术」上对EI的简介\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "配置 OpenSSH 的公钥认证",
        "date_published" : "2020-10-05T03:41:14Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/use-public-key-authentication-in-openssh/",
        "url" : "https://xuchunqiu.com/use-public-key-authentication-in-openssh/",
        "summary": " 0x00 前言https://www.ssh.com/ssh/ 上的文档写得很详细但有些散碎，本文对配置 OpenSSH 公钥认证的环节进行了整理。\n如果你还不了解什么是公钥认证的话，可以看： https://www.ssh.com/ssh/public-key-authentication\n公私钥长什么样？ bash\n",
        "content_html" : "\u003ch2 id=\"0x00-前言\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x00-%e5%89%8d%e8%a8%80\" class=\"header-mark\"\u003e\u003c/a\u003e0x00 前言\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.ssh.com/ssh/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.ssh.com/ssh/\u003c/a\u003e 上的文档写得很详细但有些散碎，本文对配置 OpenSSH 公钥认证的环节进行了整理。\u003c/p\u003e\n\u003cp\u003e如果你还不了解什么是公钥认证的话，可以看： \u003ca href=\"https://www.ssh.com/ssh/public-key-authentication\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.ssh.com/ssh/public-key-authentication\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"公私钥长什么样\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%85%ac%e7%a7%81%e9%92%a5%e9%95%bf%e4%bb%80%e4%b9%88%e6%a0%b7\" class=\"header-mark\"\u003e\u003c/a\u003e公私钥长什么样？\u003c/h3\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# https://www.ssh.com/ssh/key/#what-do-ssh-keys-look-like:~:text=An%20authorized%20key%20can%20look%20like%20this%3A\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 公钥 a.k.a. public key a.k.a. authorized key\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 尾部是生成密钥对的 \u0026lt;用户名\u0026gt;@\u0026lt;主机名\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBN+Mh3U/3We4VYtV1QmWUFIzFLTUeegl1Ao5/QGtCRGAZn8bxX9KlCrrWISIjSYAwCajIEGSPEZwPNMBoK8XD8Q\u003cspan class=\"o\"\u003e=\u003c/span\u003e ylo@klar\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 私钥 a.k.a. private key a.k.a. identity key\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-----BEGIN EC PRIVATE KEY-----\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMHcCAQEEIJWbvSW7h50HPwG+bWR3DXgQ6YhOxYbe0ifr1rRUvsUuoAoGCCqGSM49\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAwEHoUQDQgAE34yHdT/dZ7hVi1XVCZZQUjMUtNR56CXUCjn9Aa0JEYBmfxvFf0qU\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eKutYhIiNJgDAJqMgQZI8RnA80wGgrxcPxA\u003c/span\u003e\u003cspan class=\"o\"\u003e==\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-----END EC PRIVATE KEY-----\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e接下来本文将以 Windows 作为本机系统、Ubuntu 作为远程主机系统演示公钥认证的配置过程。\u003c/p\u003e\n\u003ch2 id=\"0x01-本机使用-ssh-keygen-生成公私钥对\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x01-%e6%9c%ac%e6%9c%ba%e4%bd%bf%e7%94%a8-ssh-keygen-%e7%94%9f%e6%88%90%e5%85%ac%e7%a7%81%e9%92%a5%e5%af%b9\" class=\"header-mark\"\u003e\u003c/a\u003e0x01 本机使用 \u003ccode\u003essh-keygen\u003c/code\u003e 生成公私钥对\u003c/h2\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-2\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# PowerShell\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-keygen.exe\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 默认输出到 C:\\Users\\$ENV:USERNAME\\.ssh\\ 下的 id_rsa\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# WSL\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-keygen\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 默认输出到 ~/.ssh/ 下的 id_rsa\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e密码（passphrase）对私钥的加密效果使得第三方即使获得私钥也无法完成认证过程。\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/VChEYJ.png\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e需要说明的是，在手动指定密钥对的保存路径时，如果只写文件名，默认是放在启动 \u003ccode\u003essh-keygen\u003c/code\u003e 时所在的工作目录中。\u003c/p\u003e\n\u003ch2 id=\"0x02-将公钥内容写入远程主机的-sshauthorized_keys-文件中\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x02-%e5%b0%86%e5%85%ac%e9%92%a5%e5%86%85%e5%ae%b9%e5%86%99%e5%85%a5%e8%bf%9c%e7%a8%8b%e4%b8%bb%e6%9c%ba%e7%9a%84-sshauthorized_keys-%e6%96%87%e4%bb%b6%e4%b8%ad\" class=\"header-mark\"\u003e\u003c/a\u003e0x02 将公钥内容写入远程主机的 \u003ccode\u003e~/.ssh/authorized_keys\u003c/code\u003e 文件中\u003c/h2\u003e\u003cblockquote\u003e\n  \u003cp\u003e\u003ccode\u003eauthorized_keys\u003c/code\u003e 文件保存允许通过公钥授权来经 SSH 登录服务器者的公钥，每行保存一个，空行或是井号会被忽略。\u003c/p\u003e\n\u003cp\u003e它通常位于 \u003ccode\u003e~/.ssh/authorized_keys\u003c/code\u003e（许多 OpenSSH 的版本也会使用 \u003ccode\u003e~/ssh/authorized_keys2\u003c/code\u003e），而对一些使用客制化 OpenSSH 构建的组织来说，这个默认路径可能有变化。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.ssh.com/ssh/authorized_keys/openssh\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eConfiguring authorized_keys for OpenSSH\u003c/a\u003e\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003ch3 id=\"方法-1使用-ssh-copy-id\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%96%b9%e6%b3%95-1%e4%bd%bf%e7%94%a8-ssh-copy-id\" class=\"header-mark\"\u003e\u003c/a\u003e方法 1：使用 \u003ccode\u003essh-copy-id\u003c/code\u003e\u003c/h3\u003e\u003cp\u003e\u003ccode\u003essh-copy-id\u003c/code\u003e 用于在远程主机上添加公钥，它的操作逻辑为：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e远程服主机的 \u003ccode\u003e~/.ssh\u003c/code\u003e 路径是否存在？创建：下一步\u003c/li\u003e\n\u003cli\u003e远程主机的 \u003ccode\u003e~/.ssh/authorized_keys\u003c/code\u003e 文件是否存在？创建：下一步\u003c/li\u003e\n\u003cli\u003e（当没有使用 \u003ccode\u003e-f\u003c/code\u003e(orce) 时）远程主机的 \u003ccode\u003eauthorized_keys\u003c/code\u003e 文件是否已包含本次要配置的公钥？跳过：添加，下一步\u003c/li\u003e\n\u003cli\u003e远程主机的 \u003ccode\u003eauthorized_keys\u003c/code\u003e 文件权限是否仅有当前用户可写入？不变：修改\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e其可选参数为：\u003c/p\u003e\n\n\u003cdiv class=\"table-wrapper\"\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth style=\"text-align: \"\u003eName\u003c/th\u003e\n            \u003cth style=\"text-align: \"\u003eDescription\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: \"\u003e\u003ccode\u003e-f\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003eDon\u0026rsquo;t check if the key is already configured as an authorized key on the server. Just add it. This can result in multiple copies of the key in authorized_keys files.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: \"\u003e\u003ccode\u003e-i\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003eSpecifies the identity file that is to be copied (default is ~/.ssh/id_rsa). If this option is not provided, this adds all keys listed by ssh-add -L. Note: it can be multiple keys and adding extra authorized keys can easily happen accidentally! If ssh-add -L returns no keys, then the most recently modified key matching ~/.ssh/id*.pub, excluding those matching ~/.ssh/*-cert.pub, will be used.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: \"\u003e\u003ccode\u003e-n\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003eJust print the key(s) that would be installed, without actually installing them.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: \"\u003e\u003ccode\u003e-p\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003eConnect to the specifed SSH port on the server, instead of the default port 22.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: \"\u003e\u003ccode\u003e-h\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003ehelp\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e关于 \u003ccode\u003essh-copy-id\u003c/code\u003e 的更多介绍见：\u003ca href=\"https://www.ssh.com/ssh/copy-id\" target=\"_blank\" rel=\"noopener noreferrer\"\u003essh-copy-id for copying SSH keys to servers\u003c/a\u003e，也可直接跳转到 \u003ca href=\"https://www.ssh.com/ssh/copy-id#troubleshooting:~:text=key.-,Troubleshooting\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eTrouble shooting\u003c/a\u003e 章节\u003c/p\u003e\n\u003cp\u003e废话写完了，实际使用的命令如下：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-3\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-copy-id -i /mnt/c/Users/\u003cspan class=\"nv\"\u003e$ENV\u003c/span\u003e:USERNAME/.ssh/keypair/keyToGPUServer amax@192.168.50.50\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/OtgHKL.png\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e可以注意到，已成功添加了一个公钥，但并不能按照提示所说直接使用 public key authentication，后续会在 # 0x03 的 \u003ca href=\"#%E6%96%B9%E6%B3%95-2%E5%B0%86%E7%A7%81%E9%92%A5%E4%BF%A1%E6%81%AF%E5%86%99%E5%85%A5-sshconfig-%E6%96%87%E4%BB%B6\" rel=\"\"\u003e方法 2\u003c/a\u003e 中进行解释。\u003c/p\u003e\n\u003ch3 id=\"方法-2手动拷贝\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%96%b9%e6%b3%95-2%e6%89%8b%e5%8a%a8%e6%8b%b7%e8%b4%9d\" class=\"header-mark\"\u003e\u003c/a\u003e方法 2：手动拷贝\u003c/h3\u003e\u003cp\u003e手动拷贝本机公钥内容到远程主机的 \u003ccode\u003e~/.ssh/authorized_keys\u003c/code\u003e 文件有很多方法，此处以 \u003ccode\u003escp\u003c/code\u003e 复制公钥到远程主机为例：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-4\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 先复制本机公钥到远程主机的 ~ 目录\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003escp C:\u003cspan class=\"se\"\u003e\\U\u003c/span\u003esers\u003cspan class=\"se\"\u003e\\$\u003c/span\u003eENV:USERNAME\u003cspan class=\"se\"\u003e\\k\u003c/span\u003eeyToGPUServer.pub amax@192.168.50.50:~\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/b6wHRc.png\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e不过我这里的私钥权限太宽需要修改：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-5\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 当前用户只读\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003echmod \u003cspan class=\"m\"\u003e400\u003c/span\u003e .ssh/keypair/keyToGPUServer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 当前用户读写\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003echmod \u003cspan class=\"m\"\u003e600\u003c/span\u003e .ssh/keypair/keyToGPUServer\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e传输完成后登入远程主机，将公钥内容写入到 \u003ccode\u003e~/.ssh/authorized_keys\u003c/code\u003e：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-6\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 此时仍然需要以账户密码登录\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh amax@192.168.50.50\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 添加到文件尾\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecat keyToGPUServer.pub \u0026gt;\u0026gt; ~/.ssh/authorized_keys\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"0x03-配置本机的私钥存储\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x03-%e9%85%8d%e7%bd%ae%e6%9c%ac%e6%9c%ba%e7%9a%84%e7%a7%81%e9%92%a5%e5%ad%98%e5%82%a8\" class=\"header-mark\"\u003e\u003c/a\u003e0x03 配置本机的私钥存储\u003c/h2\u003e\u003cblockquote\u003e\n  \u003cp\u003e本地主机的 ssh 程序可通过：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e命令行（指 \u003ccode\u003essh-agent\u003c/code\u003e 工具）\u003c/li\u003e\n\u003cli\u003e（用户）配置文件 \u003ccode\u003e~/.ssh/config\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e（全局）配置文件 \u003ccode\u003e/etc/ssh/ssh_config\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e来获得配置信息。三个位置的优先级由高到低，且在每个位置仅使用首个匹配成功的条目。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.ssh.com/ssh/config\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.ssh.com/ssh/config\u003c/a\u003e\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003ch3 id=\"方法-1向-ssh-agent-添加私钥\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%96%b9%e6%b3%95-1%e5%90%91-ssh-agent-%e6%b7%bb%e5%8a%a0%e7%a7%81%e9%92%a5\" class=\"header-mark\"\u003e\u003c/a\u003e方法 1：向 \u003ccode\u003essh-agent\u003c/code\u003e 添加私钥\u003c/h3\u003e\u003cblockquote\u003e\n  \u003cp\u003e\u003ccode\u003essh-agent\u003c/code\u003e 用于保存和管理用户的私钥和私钥密码，借助它我们可以实现单点登录（Single Sign-On, SSO）。\u003c/p\u003e\n\u003cp\u003e在大多 Linux 系统中 \u003ccode\u003essh-agent\u003c/code\u003e 都已被自动配置且在登入时已启动。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.ssh.com/ssh/agent\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.ssh.com/ssh/agent\u003c/a\u003e\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cp\u003e使用如下命令向 \u003ccode\u003essh-agent\u003c/code\u003e 添加私钥：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-7\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 检查是否启动\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"nv\"\u003e$SSH_AGENT_SOCK\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 手动启动\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eeval\u003c/span\u003e \u003cspan class=\"sb\"\u003e`\u003c/span\u003essh-agent\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 显示 ssh-agent 已安装私钥\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-add -l\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 从 ssh-agent 移除指定名称私钥（不删除密钥文件）\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-add -d keyToGPUServer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 从 ssh-agent 移除所有已添加私钥（不删除密钥文件）\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-add -D\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 从默认位置添加默认名称的私钥\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#  ~/.ssh/id_rsa, .ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519, and ~/.ssh/identity\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-add\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 手动指定私钥位置和名称\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-add keypair/keyToGPUServer\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e测试：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-8\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 成功认证\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh amax@192.168.50.50\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eamax@admin:~$\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"方法-2将私钥信息写入-sshconfig-文件\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%96%b9%e6%b3%95-2%e5%b0%86%e7%a7%81%e9%92%a5%e4%bf%a1%e6%81%af%e5%86%99%e5%85%a5-sshconfig-%e6%96%87%e4%bb%b6\" class=\"header-mark\"\u003e\u003c/a\u003e方法 2：将私钥信息写入 \u003ccode\u003e~/.ssh/config\u003c/code\u003e 文件\u003c/h3\u003e\u003cp\u003eWindows 下的对应文件是在 \u003ccode\u003eC:\\Users\\$ENV:USERNAME\\.ssh\\config\u003c/code\u003e：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-9\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# https://www.ssh.com/ssh/config/#configuring-public-key-authentication\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHost GPU\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    HostName 192.168.50.50\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    User amax\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    IdentityFile C:\u003cspan class=\"se\"\u003e\\U\u003c/span\u003esers\u003cspan class=\"se\"\u003e\\$\u003c/span\u003eENV:USERNAME\u003cspan class=\"se\"\u003e\\.\u003c/span\u003essh\u003cspan class=\"se\"\u003e\\k\u003c/span\u003eeypair\u003cspan class=\"se\"\u003e\\k\u003c/span\u003eeyToGPUServer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    IdentitiesOnly yes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Port \u003cspan class=\"m\"\u003e22\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    ServerAliveInterval \u003cspan class=\"m\"\u003e60\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e这里的 Host 名称一定要起一个好记的，因为在之后使用 ssh 进行公钥认证时匹配的就是这里的 Host 名称而不再是 \u003ccode\u003e\u0026lt;username\u0026gt;@\u0026lt;ip-address\u0026gt;\u003c/code\u003e，本文第二张图下方没有成功通过公钥认证就是这个原因。\u003c/p\u003e\n\u003cp\u003e测试：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-10\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 如果前面还通过 ssh-agent 添加了相同的密钥，要先删除掉。因为找密钥的时候它的优先级更高\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-add -d keyToGPUServer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 只能通过 Host 名称才不要密码\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh GPU\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eamax@admin:~$\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 如果是通过用户名主机名去登录就还得输入密码\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh amax@192.168.50.50\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eamax@192.168.50.50\u003cspan class=\"err\"\u003e\u0026#39;\u003c/span\u003es password:\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "在 Google Colab 上 Debug 的正确方式",
        "date_published" : "2019-10-16T08:24:22Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/can-we-really-debug-in-google-colab/",
        "url" : "https://xuchunqiu.com/can-we-really-debug-in-google-colab/",
        "summary": "Colaboratory（简称 Colab）是 Google 推出的免费、在线、具有 GPU 的 JupyterLab 环境，它的底层是一个虚拟的 Linux 系统，所以你在里面执行 Linux 命令也是没有问题的。\n",
        "content_html" : "\u003cp\u003e\u003ca href=\"https://colab.research.google.com/notebooks/welcome.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eColaboratory\u003c/a\u003e（简称 Colab）是 Google 推出的免费、在线、具有 GPU 的 \u003ca href=\"https://jupyter.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eJupyterLab\u003c/a\u003e 环境，它的底层是一个虚拟的 Linux 系统，所以你在里面执行 Linux 命令也是没有问题的。\u003c/p\u003e\n\u003cp\u003e我的本科毕业设计是做的深度学习相关的内容，但自己笔记本电脑里的 GTX 950M（2G）显卡一跑代码就爆显存，所以不夸张地说我是全靠 Colab 才顺利毕业。\u003c/p\u003e\n\u003cp\u003e扯远了，本文主要是测试一下 Colab 调试代码的方法，结论就是对于结构比较复杂的代码 Colab 并不能很好地完成调试。\u003c/p\u003e\n\u003ch2 id=\"0x00-一些-colab-使用心得\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x00-%e4%b8%80%e4%ba%9b-colab-%e4%bd%bf%e7%94%a8%e5%bf%83%e5%be%97\" class=\"header-mark\"\u003e\u003c/a\u003e0x00 一些 Colab 使用心得\u003c/h2\u003e\u003ch3 id=\"colab-的优点\" class=\"headerLink\"\u003e\n    \u003ca href=\"#colab-%e7%9a%84%e4%bc%98%e7%82%b9\" class=\"header-mark\"\u003e\u003c/a\u003eColab 的优点\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e环境配置简单。深度学习相关的很多软件包都是预装好的，省事省时；\u003c/li\u003e\n\u003cli\u003e网络环境通畅。数据中心带宽大，下载数据集嗖嗖的；\u003c/li\u003e\n\u003c/ul\u003e\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/nEALSm.png\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003e下载预训练模型的速度\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cul\u003e\n\u003cli\u003eGPU 够用。原来白天能分到 Telsa T4，现在白天也只有 Tesla K80 了，但起码 11.4GB 的显存是实打实的；\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/rxgsF2.png\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003e在 code cell 中使用 !nvidia-smi 命令查看 GPU 信息\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/li\u003e\n\u003cli\u003e支持 bash 命令。bash 命令想要在 code cell 里执行只需每行前加 \u003ccode\u003e!\u003c/code\u003e 就可以了；\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/5VxaAu.png\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003eColab 环境中 /bin 目录的内容\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/li\u003e\n\u003cli\u003e支持在线修改。对于大型工程，其代码必然分散在项目的各个文件夹里，以前想修改文件内容需要下载到本地修改然后再上传，十分繁琐。2019 年 10 月 4 日 Colab 支持了从文件树双击打开、修改文件。\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/NVdQxL.png\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003e@GoogleColab 的推文截图\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/li\u003e\n\u003cli\u003e更多 Colab 特性可以查看 \u003ca href=\"https://colab.research.google.com/notebooks/basic_features_overview.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eGoogle 的说明文档\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"colab-的缺点\" class=\"headerLink\"\u003e\n    \u003ca href=\"#colab-%e7%9a%84%e7%bc%ba%e7%82%b9\" class=\"header-mark\"\u003e\u003c/a\u003eColab 的缺点\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e资源自动回收。据说是运行 12 小时后自动回收所有资源（另外实际经验是如果浏览器与 Colab 的连接不幸中断数小时也会触发回收），GPU 需要重新申请是其次，重要的是保存运行结果的临时硬盘空间也会被回收掉。所以可以考虑把 Google Drive 挂载上去然后结果直接存在里边，这就会带来下面第二个缺点；\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/R4dbbh.png\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003eColab 临时硬盘有 359 GB\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/li\u003e\n\u003cli\u003e与 Google Drive 不能无缝整合。同一份代码，直接在 Colab 临时硬盘空间运行与克隆到被挂载到 Colab 的 Google Drive 运行有明显可感的降速，瓶颈可能是 Google Drive 本身存储介质的 I/O 性能；\n\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/AFUhBL.png\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003eColab 临时硬盘与挂载的 Google Drive 在 Colab 中读写速度对比\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\n再者，即使 I/O 跟得上，Google Drive 提供的 15G 免费存储空间对于大数据集来说远远不够；\u003c/li\u003e\n\u003cli\u003e不易使用图形化监测工具如 Tensorboard / Visdom 。没有官方解决方案，必须依靠奇技淫巧——换用 TensorBoardX、给 Visdom 套上反向代理。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"0x01-jupyter-101magic-commands\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x01-jupyter-101magic-commands\" class=\"header-mark\"\u003e\u003c/a\u003e0x01 Jupyter 101：magic commands\u003c/h2\u003e\u003cp\u003e所谓 [magic commands]^(魔法命令) 就是在 Jupyter 代码块中以 \u003ccode\u003e%\u003c/code\u003e 或者 \u003ccode\u003e%%\u003c/code\u003e 作为行首的特殊命令。而 bash 命令需要使用 \u003ccode\u003e!\u003c/code\u003e 作为行首。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e%\u003c/code\u003e 开头——行命令。只对命令所在的行有效\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%%\u003c/code\u003e 开头——单元命令。必须出现在单元的第一行，对整个单元的代码进行处理\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e在代码块中输入 \u003ccode\u003e%lsmagic\u003c/code\u003e 然后执行会输出关于各个命令的说明，\u003cstrong\u003e在魔法命令之后紧跟 \u003ccode\u003e?\u003c/code\u003e 可以查看该命令的详细说明\u003c/strong\u003e。\u003c/p\u003e\n\u003cdiv class=\"details admonition tip open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/\u003e\u003c/svg\u003e\u003c/span\u003e常用魔法命令\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e%cd\u003c/code\u003e 进入目录命令（改变本代码块的 [当前工作目录]^(current working directory) 并在之后的代码块中保持，而 \u003ccode\u003e!cd\u003c/code\u003e 仅对当前行有效）\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%load_ext\u003c/code\u003e 根据模块名载入模块（可以用于在本代码块的输出中载入 tensorboardX）\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%magic\u003c/code\u003e 显示所有魔法命令的详细文档\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%whos\u003c/code\u003e 打印所有变量及其类型和值\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%xdel\u003c/code\u003e 删除指定变量\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%set_env \u0026lt;var\u0026gt; \u0026lt;val\u0026gt;\u003c/code\u003e 设定环境变量的值\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%psource\u003c/code\u003e 打印对象的源代码\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%pinfo\u003c/code\u003e 打印对象的详细信息\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%pfile\u003c/code\u003e 打印对象的定义\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%%latex\u003c/code\u003e 以 $LaTeX$ 格式渲染 cell\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%run script.py\u003c/code\u003e 在ipython中执行一个外部的脚本文件\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%%python3\u003c/code\u003e 以 Python 3 执行 cell（Python 2 同理）\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%hist\u003c/code\u003e 查询输入的历史\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%writefile [-a] filename\u003c/code\u003e 把 cell 的内容写/追加入文件（别名 file）\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%env\u003c/code\u003e 显示所有/特定/修改系统环境变量\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%reset\u003c/code\u003e 清空 namespace\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%load\u003c/code\u003e 加载代码到前端（可以是链接）\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"http://nbviewer.jupyter.org/github/supergis/git_notebook/blob/master/pystart/jupyter_magics.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttp://nbviewer.jupyter.org/github/supergis/git_notebook/blob/master/pystart/jupyter_magics.ipynb\u003c/a\u003e\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003ch2 id=\"0x02-使用-ipdb-进行调试\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x02-%e4%bd%bf%e7%94%a8-ipdb-%e8%bf%9b%e8%a1%8c%e8%b0%83%e8%af%95\" class=\"header-mark\"\u003e\u003c/a\u003e0x02 使用 ipdb 进行调试\u003c/h2\u003e\u003cdiv class=\"details admonition quote open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"/\u003e\u003c/svg\u003e\u003c/span\u003e引用\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e常规的 Python 交互式 debug 工具是 pdb，它可以让我们 [单步]^(Step Trough) 调试；IPython 改进版的 pdb 被称为 ipdb 。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/01.06-Errors-and-Debugging.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/01.06-Errors-and-Debugging.ipynb\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e在 IPython 内核环境中最方便的调用 ipdb 的方法是使用魔法命令 \u003ccode\u003e%debug\u003c/code\u003e。如果是在遇到异常之后立刻运行 \u003ccode\u003e%debug\u003c/code\u003e 则会自动在异常位置打开一个[交互式调试提示符]^(Interactive Debugging Prompt)，该 ipdb 调试提示符可以实现检查当前栈、变量或是使用 Python 命令。以下是简单示范：\u003c/p\u003e\n\u003cdiv class=\"details admonition example open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/span\u003eJupyter code cell\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efunc1\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efunc2\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eb\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003efunc1\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e当调用 \u003ccode\u003efunc2(1)\u003c/code\u003e 时，将抛出异常：\u003c/p\u003e\n\u003cdiv class=\"details admonition example open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/span\u003eJupyter code cell output\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-2\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTraceback \u003cspan class=\"o\"\u003e(\u003c/span\u003emost recent call last\u003cspan class=\"o\"\u003e)\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  File \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;ipython-input-4-b2e110f6fc8f\u0026gt;\u0026#34;\u003c/span\u003e, line 1, in \u0026lt;module\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    func2\u003cspan class=\"o\"\u003e(\u003c/span\u003e1\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e1\u003c/span\u003e frames\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  File \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;ipython-input-1-d849e34d61fb\u0026gt;\u0026#34;\u003c/span\u003e, line 7, in func2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e func1\u003cspan class=\"o\"\u003e(\u003c/span\u003ea, b\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  File \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;ipython-input-1-d849e34d61fb\u0026gt;\u0026#34;\u003c/span\u003e, line 2, in func1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e a / b\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eZeroDivisionError: division by zero\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e使用 ipdb 调试：\u003c/p\u003e\n\u003cdiv class=\"details admonition example open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/span\u003eJupyter code cell output\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-3\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eipython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"nb\"\u003einput\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ed849e34d61fb\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"n\"\u003efunc1\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"mi\"\u003e1\u003c/span\u003e \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efunc1\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e----\u0026gt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e2\u003c/span\u003e     \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"mi\"\u003e3\u003c/span\u003e \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eipdb\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eup\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eipython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"nb\"\u003einput\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ed849e34d61fb\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"n\"\u003efunc2\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"mi\"\u003e5\u003c/span\u003e     \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"mi\"\u003e6\u003c/span\u003e     \u003cspan class=\"n\"\u003eb\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e----\u0026gt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e     \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003efunc1\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eipdb\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eipdb\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eup\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eipython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"nb\"\u003einput\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e6\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eb2e110f6fc8f\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e----\u0026gt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e \u003cspan class=\"n\"\u003efunc2\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eipdb\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003edown\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eipython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"nb\"\u003einput\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ed849e34d61fb\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"n\"\u003efunc2\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"mi\"\u003e5\u003c/span\u003e     \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"mi\"\u003e6\u003c/span\u003e     \u003cspan class=\"n\"\u003eb\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e----\u0026gt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e     \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003efunc1\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eipdb\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003equit\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cdiv class=\"details admonition tip open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/\u003e\u003c/svg\u003e\u003c/span\u003e常用 ipdb 命令\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cdiv class=\"table-wrapper\"\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth style=\"text-align: left\"\u003eCommand\u003c/th\u003e\n            \u003cth style=\"text-align: \"\u003eDescription\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003elist\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e显示当前行的上下5行\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003eup\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e步退\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003edown\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e步进\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003en(ext)\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e当前文件中下一步 Go to the next step of the program\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003es(tep)\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e下一步，如果有就进入子函数（Step into a subroutine）\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003er(eturn)\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e退出子函数（Return out of a subroutine）\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003e\u0026lt;enter\u0026gt;\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e重复前条命令\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003ep(rint)\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e打印指定变量值\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003ec(ontinue)\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e退出调试器，继续运行程序\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003eq(uit)\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e退出调试器，终止程序\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003eh(elp)\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e显示所有命令/指定命令的帮助\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd style=\"text-align: left\"\u003e\u003ccode\u003eb LINE\u003c/code\u003e\u003c/td\u003e\n            \u003ctd style=\"text-align: \"\u003e在指定行设置断点\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/01.06-Errors-and-Debugging.ipynb#scrollTo=MNC9gzvgplsp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/01.06-Errors-and-Debugging.ipynb#scrollTo=MNC9gzvgplsp\u003c/a\u003e\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e上述例子调用 ipdb 发生在产生异常之后，目的是为了\u003cstrong\u003e修改程序中的错误\u003c/strong\u003e；如果我们的程序运行良好，想通过调试\u003cstrong\u003e观察函数调用\u003c/strong\u003e，就不能再用简单的行魔法命令 \u003ccode\u003e%debug\u003c/code\u003e 而是为其加上参数甚至变成单元命令。\u003c/p\u003e\n\u003cblockquote\u003e\n  \u003cp\u003e\u003ccode\u003e%pdb\u003c/code\u003e 与 \u003ccode\u003e%debug\u003c/code\u003e 用法的不同（总结自 \u003ccode\u003e%debug?\u003c/code\u003e）\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e如果想在每次 \u003cstrong\u003e产生异常后\u003c/strong\u003e 让 IPython \u003cstrong\u003e自动进入\u003c/strong\u003e 交互式调试提示符—— \u003ccode\u003e%pdb on\u003c/code\u003e 或者 \u003ccode\u003e%pdb 1\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e如果想在每次[\u003cstrong\u003e产生异常后\u003c/strong\u003e]^(Post-mortem Mode) \u003cstrong\u003e手动进入\u003c/strong\u003e 交互式调试提示符——不加参数地使用 \u003ccode\u003e%debug\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e如果想\u003cstrong\u003e无论有没有异常\u003c/strong\u003e都激活交互式调试提示符——带参数地使用 \u003ccode\u003e%debug\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\u003ch3 id=\"如何带参数地使用-debug\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%a6%82%e4%bd%95%e5%b8%a6%e5%8f%82%e6%95%b0%e5%9c%b0%e4%bd%bf%e7%94%a8-debug\" class=\"header-mark\"\u003e\u003c/a\u003e如何带参数地使用 \u003ccode\u003e%debug\u003c/code\u003e\u003c/h3\u003e\u003ch4 id=\"失败的尝试\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%a4%b1%e8%b4%a5%e7%9a%84%e5%b0%9d%e8%af%95\" class=\"header-mark\"\u003e\u003c/a\u003e失败的尝试\u003c/h4\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e%debug –breakpoint \u0026lt;FILE\u0026gt;:\u0026lt;LINE\u0026gt;\u003c/code\u003e 结果：无法调起 ipdb 交互式调试提示符。只会显示一个不响应 ipdb 命令的输入框。\n\u003cdiv class=\"details admonition example open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/span\u003eJupyter code cell and output\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e  \u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/sRJns0.png\"\u003e\n  \u003c/figure\u003e\n  \u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/d2MiBu.png\"\u003e\n  \u003c/figure\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e%%debug –breakpoint \u0026lt;FILE\u0026gt;:\u0026lt;LINE\u0026gt;\u003c/code\u003e 结果：无法运行到标记的断点。Python 处理基本调试器函数的 bdb 模块出现异常，未搜到解决方法。尝试不加 \u003ccode\u003e-b\u003c/code\u003e 参数异常不变。\n\u003cdiv class=\"details admonition example open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/span\u003eJupyter code cell and output\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e  \u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/eOipjo.png\"\u003e\n  \u003c/figure\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"可行方式\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%8f%af%e8%a1%8c%e6%96%b9%e5%bc%8f\" class=\"header-mark\"\u003e\u003c/a\u003e可行方式\u003c/h4\u003e\u003cp\u003e手动在程序中设置断点。但调试过程复杂低效。首先要先在 Jupyter 环境安装 ipdb：\u003c/p\u003e\n\u003cdiv class=\"details admonition example open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/span\u003eJupyter code cell\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-4\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 安装 ipdb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# P.S. 按 https://stackoverflow.com/a/32409822/8178171 的讨论也可以使用 pdb，那么下面加断点时也要改成 pdb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e!pip3 install ipdb\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e然后在代码中加入断点：\n\u003cdiv class=\"details admonition example open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/span\u003eJupyter code cell or *.py\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-5\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 源程序想设置断点处：添加此行\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eipdb\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"n\"\u003eipdb\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset_trace\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/p\u003e\n\u003cp\u003e实际效果如下：\u003c/p\u003e\n\u003cdiv class=\"details admonition example open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/span\u003eJupyter code cell and output\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cfigure\u003e\u003cimg src=\"https://image.assets.xuchunqiu.com/img/2023/09/Ta7Bi9.png\"\u003e\n\u003c/figure\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "在 Colab 运行 Faster R-CNN 时的问题简记",
        "date_published" : "2019-09-23T13:08:02Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/run-faster-r-cnn-on-colab/",
        "url" : "https://xuchunqiu.com/run-faster-r-cnn-on-colab/",
        "summary": " 0x00 相关链接 使用 Pytorch 框架下实现的 Faster R-CNN：jwyang/faster-rcnn.pytorch 主要参考文章：使用 colab 訓練 faster-rcnn 0x01 操作步骤 克隆仓库使用 -b 参数指定 [分支]^(branch) 为 pytorch-1.0，否则后续编译出错\n",
        "content_html" : "\u003ch2 id=\"0x00-相关链接\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x00-%e7%9b%b8%e5%85%b3%e9%93%be%e6%8e%a5\" class=\"header-mark\"\u003e\u003c/a\u003e0x00 相关链接\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e使用 Pytorch 框架下实现的 Faster R-CNN：\u003ca href=\"https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ejwyang/faster-rcnn.pytorch\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e主要参考文章：\u003ca href=\"https://www.twblogs.net/a/5cb44531bd9eee48d788c415\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e使用 colab 訓練 faster-rcnn\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"0x01-操作步骤\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x01-%e6%93%8d%e4%bd%9c%e6%ad%a5%e9%aa%a4\" class=\"header-mark\"\u003e\u003c/a\u003e0x01 操作步骤\u003c/h2\u003e\u003ch3 id=\"克隆仓库\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%85%8b%e9%9a%86%e4%bb%93%e5%ba%93\" class=\"header-mark\"\u003e\u003c/a\u003e克隆仓库\u003c/h3\u003e\u003cp\u003e使用 \u003ccode\u003e-b\u003c/code\u003e 参数指定 [分支]^(branch) 为 \u003ccode\u003epytorch-1.0\u003c/code\u003e，否则后续编译出错\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003egit\u003c/span\u003e \u003cspan class=\"n\"\u003eclone\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eb\u003c/span\u003e \u003cspan class=\"n\"\u003epytorch\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mf\"\u003e1.0\u003c/span\u003e \u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003egithub\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003ejwyang\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003efaster\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ercnn\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epytorch\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"下载预训练模型数据集\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e4%b8%8b%e8%bd%bd%e9%a2%84%e8%ae%ad%e7%bb%83%e6%a8%a1%e5%9e%8b%e6%95%b0%e6%8d%ae%e9%9b%86\" class=\"header-mark\"\u003e\u003c/a\u003e下载预训练模型、数据集\u003c/h3\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-2\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 进入下载好代码的主目录\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eos\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eos\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003echdir\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;faster-rcnn.pytorch\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 下载预训练模型\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003els\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003emkdir\u003c/span\u003e \u003cspan class=\"n\"\u003edata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eos\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003echdir\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;data\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003emkdir\u003c/span\u003e \u003cspan class=\"n\"\u003epretrained_model\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eos\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003echdir\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;pretrained_model\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 下载 res101\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003ewget\u003c/span\u003e \u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003efilebox\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eece\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evt\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eedu\u003c/span\u003e\u003cspan class=\"o\"\u003e/~\u003c/span\u003e\u003cspan class=\"n\"\u003ejw2yang\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003efaster\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ercnn\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epretrained\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ebase\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emodels\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eresnet101_caffe\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epth\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 下载 vgg16\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003ewget\u003c/span\u003e \u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003efilebox\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eece\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evt\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eedu\u003c/span\u003e\u003cspan class=\"o\"\u003e/~\u003c/span\u003e\u003cspan class=\"n\"\u003ejw2yang\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003efaster\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ercnn\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epretrained\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ebase\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emodels\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003evgg16_caffe\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epth\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 下载数据集\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eos\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003echdir\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;../\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e#返回上一級目录即data/下\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003ewget\u003c/span\u003e \u003cspan class=\"n\"\u003ehttp\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erobots\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eox\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eac\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003euk\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epascal\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eVOC\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003evoc2007\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eVOCtrainval_06\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eNov\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mf\"\u003e2007.\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003ewget\u003c/span\u003e \u003cspan class=\"n\"\u003ehttp\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erobots\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eox\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eac\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003euk\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epascal\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eVOC\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003evoc2007\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eVOCtest_06\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eNov\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mf\"\u003e2007.\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003ewget\u003c/span\u003e \u003cspan class=\"n\"\u003ehttp\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erobots\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eox\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eac\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003euk\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epascal\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eVOC\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003evoc2007\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eVOCdevkit_08\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eJun\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mf\"\u003e2007.\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 解压缩\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e \u003cspan class=\"n\"\u003exvf\u003c/span\u003e \u003cspan class=\"n\"\u003eVOCtrainval_06\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eNov\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mf\"\u003e2007.\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e \u003cspan class=\"n\"\u003exvf\u003c/span\u003e \u003cspan class=\"n\"\u003eVOCtest_06\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eNov\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mf\"\u003e2007.\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e \u003cspan class=\"n\"\u003exvf\u003c/span\u003e \u003cspan class=\"n\"\u003eVOCdevkit_08\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eJun\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mf\"\u003e2007.\u003c/span\u003e\u003cspan class=\"n\"\u003etar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 解压后的文件夹名称需要修改否则网络训练过程中会找不到路径。报错见问题 2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003emv\u003c/span\u003e \u003cspan class=\"n\"\u003eVOCdevkit\u003c/span\u003e \u003cspan class=\"n\"\u003eVOCdevkit2007\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"编译\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e7%bc%96%e8%af%91\" class=\"header-mark\"\u003e\u003c/a\u003e编译\u003c/h3\u003e\u003cp\u003e回到上一级路径，然后进入 \u003ccode\u003elib\u003c/code\u003e 编译\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-3\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eos\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003echdir\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;../lib\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e \u003cspan class=\"n\"\u003esetup\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e \u003cspan class=\"n\"\u003ebuild\u003c/span\u003e \u003cspan class=\"n\"\u003edevelop\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"训练\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e8%ae%ad%e7%bb%83\" class=\"header-mark\"\u003e\u003c/a\u003e训练\u003c/h3\u003e\u003cp\u003e首先修改编译好文件 \u003ccode\u003efaster-rcnn.pytorch/lib/roi_data_layer/minibatch.py\u003c/code\u003e  。原因见问题 1。\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-4\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003esed\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ei\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s/from scipy.misc import imread/from matplotlib.pyplot import imread/g\u0026#39;\u003c/span\u003e \u003cspan class=\"n\"\u003eroi_data_layer\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eminibatch\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e给定超参数开始训练：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-5\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003ecd\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003efaster\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ercnn\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epytorch\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan class=\"n\"\u003eCUDA_VISIBLE_DEVICES\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e \u003cspan class=\"n\"\u003epython\u003c/span\u003e \u003cspan class=\"n\"\u003etrainval\u003c/span\u003e\\\u003cspan class=\"n\"\u003e_net\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003edataset\u003c/span\u003e \u003cspan class=\"n\"\u003epascal_voc\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003enet\u003c/span\u003e \u003cspan class=\"n\"\u003eres101\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003ebs\u003c/span\u003e \u003cspan class=\"mi\"\u003e4\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003enw\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003elr\u003c/span\u003e \u003cspan class=\"mf\"\u003e0.004\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003elr_decay_step\u003c/span\u003e \u003cspan class=\"mi\"\u003e8\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003eepochs\u003c/span\u003e \u003cspan class=\"mi\"\u003e10\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003ecuda\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"0x02-已解决问题\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x02-%e5%b7%b2%e8%a7%a3%e5%86%b3%e9%97%ae%e9%a2%98\" class=\"header-mark\"\u003e\u003c/a\u003e0x02 已解决问题\u003c/h2\u003e\u003ch3 id=\"问题-1无法导入-imread\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e9%97%ae%e9%a2%98-1%e6%97%a0%e6%b3%95%e5%af%bc%e5%85%a5-imread\" class=\"header-mark\"\u003e\u003c/a\u003e问题 1：无法导入 \u003ccode\u003eimread\u003c/code\u003e\u003c/h3\u003e\u003cp\u003e开始训练时文件 \u003ccode\u003efaster-rcnn.pytorch/lib/roi_data_layer/minibatch.py\u003c/code\u003e 无法从 \u003ccode\u003escipy.misc\u003c/code\u003e 导入 \u003ccode\u003eimread\u003c/code\u003e 。\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-6\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eTraceback\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emost\u003c/span\u003e \u003cspan class=\"n\"\u003erecent\u003c/span\u003e \u003cspan class=\"n\"\u003ecall\u003c/span\u003e \u003cspan class=\"n\"\u003elast\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;trainval_net.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e28\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eroi_data_layer.roibatchLoader\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eroibatchLoader\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/roi_data_layer/roibatchLoader.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e14\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eroi_data_layer.minibatch\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eget_minibatch\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eget_minibatch\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/roi_data_layer/minibatch.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e15\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003escipy.misc\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eimread\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ne\"\u003eImportError\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ecannot\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ename\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;imread\u0026#39;\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e参考 \u003ca href=\"https://stackoverflow.com/a/49586881\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://stackoverflow.com/a/49586881\u003c/a\u003e 改为从 \u003ccode\u003ematplotlib.pyplot\u003c/code\u003e 导入。\u003c/p\u003e\n\u003cblockquote\u003e\n  \u003cp\u003e\u003ca href=\"https://docs.scipy.org/doc/scipy-1.2.1/reference/generated/scipy.misc.imread.html#scipy.misc.imread\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003eimread\u003c/code\u003e\u003c/a\u003e is deprecated in SciPy 1.0.0, and will be removed in 1.2.0. Use \u003ccode\u003eimageio.imread\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.scipy.org/doc/scipy-1.2.1/reference/generated/scipy.misc.imread.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://docs.scipy.org/doc/scipy-1.2.1/reference/generated/scipy.misc.imread.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e所以也可以 \u003ccode\u003e!pip install scipy==1.0.0\u003c/code\u003e ，印象中好像 pip3 不行\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003ch3 id=\"问题-2找不到数据集\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e9%97%ae%e9%a2%98-2%e6%89%be%e4%b8%8d%e5%88%b0%e6%95%b0%e6%8d%ae%e9%9b%86\" class=\"header-mark\"\u003e\u003c/a\u003e问题 2：找不到数据集\u003c/h3\u003e\u003cp\u003e开始训练时找不到数据集。\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-7\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eTraceback\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emost\u003c/span\u003e \u003cspan class=\"n\"\u003erecent\u003c/span\u003e \u003cspan class=\"n\"\u003ecall\u003c/span\u003e \u003cspan class=\"n\"\u003elast\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;trainval_net.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e197\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eimdb\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eroidb\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eratio_list\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eratio_index\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecombined_roidb\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eargs\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimdb_name\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/roi_data_layer/roidb.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e116\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ecombined_roidb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eroidbs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eget_roidb\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eimdb_names\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;+\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/roi_data_layer/roidb.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e116\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003elistcomp\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eroidbs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eget_roidb\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eimdb_names\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;+\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/roi_data_layer/roidb.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e109\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eget_roidb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eimdb\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eget_imdb\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eimdb_name\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/datasets/factory.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e66\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eget_imdb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003e__sets\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e]()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/datasets/factory.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e25\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003e__sets\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eyear\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eyear\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epascal_voc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eyear\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/datasets/pascal_voc.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e56\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_image_index\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_load_image_set_index\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/lib/datasets/pascal_voc.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e107\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_load_image_set_index\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;Path does not exist: \u003c/span\u003e\u003cspan class=\"si\"\u003e{}\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eformat\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eimage_set_file\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ne\"\u003eAssertionError\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e \u003cspan class=\"n\"\u003edoes\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"n\"\u003eexist\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003efaster\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ercnn\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epytorch\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003edata\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eVOCdevkit2007\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eVOC2007\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eImageSets\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eMain\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003etrainval\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etxt\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e因为下载完的数据集解压缩后默认文件夹是 \u003ccode\u003eVOCdevkit\u003c/code\u003e，而代码中写死了去 \u003ccode\u003eVOCdevkit2007\u003c/code\u003e 找。\u003c/p\u003e\n\u003ch2 id=\"0x03-补充tensorboard-在-colab-里的用法简记\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x03-%e8%a1%a5%e5%85%85tensorboard-%e5%9c%a8-colab-%e9%87%8c%e7%9a%84%e7%94%a8%e6%b3%95%e7%ae%80%e8%ae%b0\" class=\"header-mark\"\u003e\u003c/a\u003e0x03 补充：TensorBoard 在 Colab 里的用法简记\u003c/h2\u003e\u003ch3 id=\"为什么这是个问题\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e4%b8%ba%e4%bb%80%e4%b9%88%e8%bf%99%e6%98%af%e4%b8%aa%e9%97%ae%e9%a2%98\" class=\"header-mark\"\u003e\u003c/a\u003e为什么这是个问题？\u003c/h3\u003e\u003cp\u003eColab 是远程操作，不像本机使用的话环回地址加端口号就访问得到，Colab 宿主机的 IP 不允许公网直接访问，需要反代才能正常访问 Colab 开放出来的 Tensorbaord 端口。如果不反代就只能用 \u003ccode\u003etensorboardX\u003c/code\u003e。\u003c/p\u003e\n\u003ch3 id=\"操作步骤\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%93%8d%e4%bd%9c%e6%ad%a5%e9%aa%a4\" class=\"header-mark\"\u003e\u003c/a\u003e操作步骤\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e安装 TensorBoard for Pytorch：\u003ca href=\"https://github.com/lanpa/tensorboardX\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eTensorBoardX\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-8\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"n\"\u003etensorboardX\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e根据 TensorBoardX 项目主页的教程我们其实还需要安装 TensorBoard，但 \u003ca href=\"https://www.tensorflow.org/guide/summaries_and_tensorboard?hl=zh-cn\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e通过 pip 安装 TensorFlow 时，也会自动安装 TensorBoard\u003c/a\u003e。 Colab 作为 Google 亲儿子，自然已经安装妥当。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e在程序中引入（修改 faster-rcnn.pytorch 项目中的已有代码）\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-9\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etensorboardX\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eSummaryWriter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e……\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003elogger\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eSummaryWriter\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;logs\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"c1\"\u003e# 指定传递给TensorBoardX用来绘图的数据的存放位置：\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                                \u003cspan class=\"c1\"\u003e# 项目根目录下的logs文件夹，其在训练开始后自动创建\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e……\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003einfo\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s1\"\u003e\u0026#39;loss\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eloss_temp\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s1\"\u003e\u0026#39;loss_rpn_cls\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eloss_rpn_cls\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s1\"\u003e\u0026#39;loss_rpn_box\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eloss_rpn_box\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s1\"\u003e\u0026#39;loss_rcnn_cls\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eloss_rcnn_cls\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s1\"\u003e\u0026#39;loss_rcnn_box\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eloss_rcnn_box\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003elogger\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_scalars\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;logs_s_\u003c/span\u003e\u003cspan class=\"si\"\u003e{}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/losses\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eformat\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eargs\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esession\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"n\"\u003einfo\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eepoch\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003eiters_per_epoch\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"n\"\u003estep\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e使用 [魔法函数]^(MagicCommands) 启用 TensorBaordX\u003c/p\u003e\n\u003cp\u003e魔法函数是 IPython 内核的特性，意在简明地解决数据处理过程中的常见问题。\u003c/p\u003e\n\u003cblockquote\u003e\n  \u003cp\u003e%load_ext\u003c/p\u003e\n\u003cp\u003eLoad an IPython extension by its module name.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://ipython.readthedocs.io/en/stable/interactive/magics.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://ipython.readthedocs.io/en/stable/interactive/magics.html\u003c/a\u003e\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003epython\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-10\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e\u003cspan class=\"n\"\u003eload_ext\u003c/span\u003e \u003cspan class=\"n\"\u003etensorboard\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# %reload_ext tensorboard\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e\u003cspan class=\"n\"\u003etensorboard\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003elogdir\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/content/faster-rcnn.pytorch/logs\u0026#34;\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e这个 code cell 执行完毕后不会终止而是默默等待数据，接着再执行训练 code cell 这边就会出曲线了。\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"更多-tensorboard-教程\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%9b%b4%e5%a4%9a-tensorboard-%e6%95%99%e7%a8%8b\" class=\"header-mark\"\u003e\u003c/a\u003e更多 Tensorboard 教程：\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.tensorflow.org/guide/summaries_and_tensorboard?hl=zh-cn\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.tensorflow.org/guide/summaries_and_tensorboard?hl=zh-cn\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://colab.research.google.com/drive/1NbEqqB42VSzYt-mmb4ESc8yxL05U2TIV#scrollTo=ZnDqxE2msZbd\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://colab.research.google.com/drive/1NbEqqB42VSzYt-mmb4ESc8yxL05U2TIV#scrollTo=ZnDqxE2msZbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://zhuanlan.zhihu.com/p/39115355\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://zhuanlan.zhihu.com/p/39115355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "如何在 Ubuntu 上安装配置 Rime 输入法",
        "date_published" : "2019-05-24T01:04:47Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/install-and-setup-rime-on-ubuntu/",
        "url" : "https://xuchunqiu.com/install-and-setup-rime-on-ubuntu/",
        "summary": "Ubuntu 上比较流行又好装的中文输入法应该就只有 搜狗输入法 for Linux 一款了，但如果你追求简洁纯粹，那 Rime 输入法 或许是你的菜。\nRime 是一款由 佛振 主导开发的自由软件，支持在 Windows、macOS 和 Linux 操作系统上运行。它的优点是干净纯粹支持高度的客制化，缺点是较差的联想功能（自己慢慢养词库或者导入其它输入法的词库）和比较复杂的配置。本文将专注于介绍 Rime 在安装阶段的配置过程。\n",
        "content_html" : "\u003cp\u003eUbuntu 上比较流行又好装的中文输入法应该就只有 \u003ca href=\"https://pinyin.sogou.com/linux/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e搜狗输入法 for Linux\u003c/a\u003e 一款了，但如果你追求简洁纯粹，那 \u003ca href=\"https://rime.im\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRime 输入法\u003c/a\u003e 或许是你的菜。\u003c/p\u003e\n\u003cp\u003eRime 是一款由 \u003ca href=\"https://github.com/lotem\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e佛振\u003c/a\u003e 主导开发的自由软件，支持在 Windows、macOS 和 Linux 操作系统上运行。它的优点是干净纯粹支持高度的客制化，缺点是较差的联想功能（自己慢慢养词库或者导入其它输入法的词库）和比较复杂的配置。本文将专注于介绍 Rime 在安装阶段的配置过程。\u003c/p\u003e\n\u003ch2 id=\"1-基本安装\" class=\"headerLink\"\u003e\n    \u003ca href=\"#1-%e5%9f%ba%e6%9c%ac%e5%ae%89%e8%a3%85\" class=\"header-mark\"\u003e\u003c/a\u003e1. 基本安装\u003c/h2\u003e\u003cp\u003e在 \u003ca href=\"https://rime.im/download/#Linux\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRime 下载页面的 Linux 章节\u003c/a\u003e 中给出了基于 IBus 和 Fcitx 两种输入法框架的安装指导，我这里是选择 IBus 框架：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install ibus-rime\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 可选：安装双拼\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install librime-data-double-pinyin \u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"2-切换到-ibus\" class=\"headerLink\"\u003e\n    \u003ca href=\"#2-%e5%88%87%e6%8d%a2%e5%88%b0-ibus\" class=\"header-mark\"\u003e\u003c/a\u003e2. 切换到 IBus\u003c/h2\u003e\u003cp\u003e从启动台打开「输入法」或在终端中使用命令开启：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-2\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eim-config\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e然后选择 \u003ccode\u003eibus\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"3-添加-rime-到-ibus\" class=\"headerLink\"\u003e\n    \u003ca href=\"#3-%e6%b7%bb%e5%8a%a0-rime-%e5%88%b0-ibus\" class=\"header-mark\"\u003e\u003c/a\u003e3. 添加 Rime 到 IBus\u003c/h2\u003e\u003cp\u003e在终端中使用以下命令开启 IBus 设置：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-3\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eibus-setup\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e在输入法中添加 \u003ccode\u003eChinese - Rime\u003c/code\u003e。如果看不到这一项，需要在系统设置的语言中添加中文并拖动到最顶，然后登出系统以使新的语言设置生效。\u003c/p\u003e\n\u003ch2 id=\"4-切换-ibus-engine-到-rime\" class=\"headerLink\"\u003e\n    \u003ca href=\"#4-%e5%88%87%e6%8d%a2-ibus-engine-%e5%88%b0-rime\" class=\"header-mark\"\u003e\u003c/a\u003e4. 切换 IBus engine 到 Rime\u003c/h2\u003e\u003cp\u003e使用如下命令切换到 Rime：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-4\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eibus engine rime\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"details admonition tip open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/\u003e\u003c/svg\u003e\u003c/span\u003e其它有用的命令\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-6\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 列出所有可用引擎\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eibus list-engine\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 查看当前使用引擎\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eibus engine\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003ch2 id=\"5-可选在-rime-中启用小鹤双拼\" class=\"headerLink\"\u003e\n    \u003ca href=\"#5-%e5%8f%af%e9%80%89%e5%9c%a8-rime-%e4%b8%ad%e5%90%af%e7%94%a8%e5%b0%8f%e9%b9%a4%e5%8f%8c%e6%8b%bc\" class=\"header-mark\"\u003e\u003c/a\u003e5. 可选：在 Rime 中启用小鹤双拼\u003c/h2\u003e\u003cp\u003e修改配置文件 \u003ccode\u003e~/.config/ibus/rime/default.yaml\u003c/code\u003e ，依照现有布局加入条目：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003eyaml\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-5\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- \u003cspan class=\"l\"\u003eschema：double_pinyin_flypy\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e然后在输入时就能通过 \u003ccode\u003ectrl\u003c/code\u003e + `/`` 呼出方案选单。\u003c/p\u003e\n\u003cdiv class=\"details admonition tip open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/\u003e\u003c/svg\u003e\u003c/span\u003e技巧\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e更多配置教程请查阅 \u003ca href=\"https://rime.im/docs/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRime 帮助文档\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "为 Linux 上的 Caffe 启用 GPU 支持",
        "date_published" : "2019-04-09T00:33:53Z",
        "date_modified" : "2022-04-09T13:05:47Z",
        "id" : "https://xuchunqiu.com/enable-gpu-support-for-caffe-on-linux/",
        "url" : "https://xuchunqiu.com/enable-gpu-support-for-caffe-on-linux/",
        "summary": " 0x00 下载 CUDA 和 cuDNN下载 CUDA Toolkit 8.0 和 cuDNN v7.1.4, for CUDA 8.0\nCUDA 下载：https://developer.nvidia.com/cuda-80-ga2-download-archive\n",
        "content_html" : "\u003ch2 id=\"0x00-下载-cuda-和-cudnn\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x00-%e4%b8%8b%e8%bd%bd-cuda-%e5%92%8c-cudnn\" class=\"header-mark\"\u003e\u003c/a\u003e0x00 下载 CUDA 和 cuDNN\u003c/h2\u003e\u003cp\u003e下载 \u003ccode\u003eCUDA Toolkit 8.0\u003c/code\u003e 和 \u003ccode\u003ecuDNN v7.1.4, for CUDA 8.0\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCUDA 下载：https://developer.nvidia.com/cuda-80-ga2-download-archive\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ecuDNN 下载：https://developer.nvidia.com/rdp/cudnn-archive\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"0x01-安装-cuda\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x01-%e5%ae%89%e8%a3%85-cuda\" class=\"header-mark\"\u003e\u003c/a\u003e0x01 安装 \u003ccode\u003eCUDA\u003c/code\u003e\u003c/h2\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo sh cuda_8.0.61_375.26_linux.run\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e……\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDo you accept the previously \u003cspan class=\"nb\"\u003eread\u003c/span\u003e EULA?\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaccept/decline/quit: accept\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstall NVIDIA Accelerated Graphics Driver \u003cspan class=\"k\"\u003efor\u003c/span\u003e Linux-x86_64 375.26?\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003ey\u003cspan class=\"o\"\u003e)\u003c/span\u003ees/\u003cspan class=\"o\"\u003e(\u003c/span\u003en\u003cspan class=\"o\"\u003e)\u003c/span\u003eo/\u003cspan class=\"o\"\u003e(\u003c/span\u003eq\u003cspan class=\"o\"\u003e)\u003c/span\u003euit: n\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstall the CUDA 8.0 Toolkit?\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003ey\u003cspan class=\"o\"\u003e)\u003c/span\u003ees/\u003cspan class=\"o\"\u003e(\u003c/span\u003en\u003cspan class=\"o\"\u003e)\u003c/span\u003eo/\u003cspan class=\"o\"\u003e(\u003c/span\u003eq\u003cspan class=\"o\"\u003e)\u003c/span\u003euit: y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEnter Toolkit Location\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003e default is /usr/local/cuda-8.0 \u003cspan class=\"o\"\u003e]\u003c/span\u003e: \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# CUDA_HOME=/usr/local/cuda\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDo you want to install a symbolic link at /usr/local/cuda?\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003ey\u003cspan class=\"o\"\u003e)\u003c/span\u003ees/\u003cspan class=\"o\"\u003e(\u003c/span\u003en\u003cspan class=\"o\"\u003e)\u003c/span\u003eo/\u003cspan class=\"o\"\u003e(\u003c/span\u003eq\u003cspan class=\"o\"\u003e)\u003c/span\u003euit: y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstall the CUDA 8.0 Samples?\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003ey\u003cspan class=\"o\"\u003e)\u003c/span\u003ees/\u003cspan class=\"o\"\u003e(\u003c/span\u003en\u003cspan class=\"o\"\u003e)\u003c/span\u003eo/\u003cspan class=\"o\"\u003e(\u003c/span\u003eq\u003cspan class=\"o\"\u003e)\u003c/span\u003euit: y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEnter CUDA Samples Location\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003e default is /home/user \u003cspan class=\"o\"\u003e]\u003c/span\u003e: \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling the CUDA Toolkit in /usr/local/cuda-8.0 ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling the CUDA Samples in /home/user ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCopying samples to /home/user/NVIDIA_CUDA-8.0_Samples now...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eFinished copying samples.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling the CUDA Toolkit in /usr/local/cuda-8.0 ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMissing recommended library: libGLU.so\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMissing recommended library: libXmu.so\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling the CUDA Samples in /home/user ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCopying samples to /home/user/NVIDIA_CUDA-8.0_Samples now...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eFinished copying samples.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e===========\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nv\"\u003eSummary\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e===========\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDriver:   Not Selected\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eToolkit:  Installed in /usr/local/cuda-8.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSamples:  Installed in /home/user, but missing recommended libraries\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePlease make sure that\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e -   PATH includes /usr/local/cuda-8.0/bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePlease see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf \u003cspan class=\"k\"\u003efor\u003c/span\u003e detailed information on setting up CUDA.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required \u003cspan class=\"k\"\u003efor\u003c/span\u003e CUDA 8.0 functionality to work.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo install the driver using this installer, run the following command, replacing \u0026lt;CudaInstaller\u0026gt; with the name of this run file:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    sudo \u0026lt;CudaInstaller\u0026gt;.run -silent -driver\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eLogfile is /tmp/cuda_install_6304.log\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSignal caught, cleaning up\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"故障排除missing-libglusolibxmuso\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%95%85%e9%9a%9c%e6%8e%92%e9%99%a4missing-libglusolibxmuso\" class=\"header-mark\"\u003e\u003c/a\u003e故障排除：Missing libGLU.so、libXmu.so\u003c/h3\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-2\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 对于 Missing recommended library: libGLU.so\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 和 Missing recommended library: libXmu.so\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 安装依赖库：\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 对于 ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work. 不用管\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"将-cuda-安装目录写入环境变量\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%b0%86-cuda-%e5%ae%89%e8%a3%85%e7%9b%ae%e5%bd%95%e5%86%99%e5%85%a5%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f\" class=\"header-mark\"\u003e\u003c/a\u003e将 \u003ccode\u003eCUDA\u003c/code\u003e 安装目录写入环境变量\u003c/h3\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-3\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo vim ~/.bashrc\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 将以下内容写入到~/.bashrc尾部：\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003ePATH\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e/usr/local/cuda-8.0/bin\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ePATH\u003c/span\u003e\u003cspan class=\"p\"\u003e:+:\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ePATH\u003c/span\u003e\u003cspan class=\"si\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eLD_LIBRARY_PATH\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e/usr/local/cuda-8.0/lib64\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eLD_LIBRARY_PATH\u003c/span\u003e\u003cspan class=\"p\"\u003e:+:\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eLD_LIBRARY_PATH\u003c/span\u003e\u003cspan class=\"si\"\u003e}}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"运行-cuda-测试用例\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e8%bf%90%e8%a1%8c-cuda-%e6%b5%8b%e8%af%95%e7%94%a8%e4%be%8b\" class=\"header-mark\"\u003e\u003c/a\u003e运行 \u003ccode\u003eCUDA\u003c/code\u003e 测试用例\u003c/h3\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-4\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# \u003cspan class=\"nb\"\u003ecd\u003c/span\u003e /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo make\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\u0026#34;/usr/local/cuda-8.0\u0026#34;\u003c/span\u003e/bin/nvcc -ccbin g++ -I../../common/inc  -m64    -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_20,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_20 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_30,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_30 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_35,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_35 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_37,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_37 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_50,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_50 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_52,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_52 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_60,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_60 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_60,code\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_60 -o deviceQuery.o -c deviceQuery.cpp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envcc warning : The \u003cspan class=\"s1\"\u003e\u0026#39;compute_20\u0026#39;\u003c/span\u003e, \u003cspan class=\"s1\"\u003e\u0026#39;sm_20\u0026#39;\u003c/span\u003e, and \u003cspan class=\"s1\"\u003e\u0026#39;sm_21\u0026#39;\u003c/span\u003e architectures are deprecated, and may be removed in a future release \u003cspan class=\"o\"\u003e(\u003c/span\u003eUse -Wno-deprecated-gpu-targets to suppress warning\u003cspan class=\"o\"\u003e)\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\u0026#34;/usr/local/cuda-8.0\u0026#34;\u003c/span\u003e/bin/nvcc -ccbin g++   -m64      -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_20,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_20 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_30,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_30 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_35,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_35 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_37,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_37 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_50,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_50 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_52,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_52 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_60,code\u003cspan class=\"o\"\u003e=\u003c/span\u003esm_60 -gencode \u003cspan class=\"nv\"\u003earch\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_60,code\u003cspan class=\"o\"\u003e=\u003c/span\u003ecompute_60 -o deviceQuery deviceQuery.o \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envcc warning : The \u003cspan class=\"s1\"\u003e\u0026#39;compute_20\u0026#39;\u003c/span\u003e, \u003cspan class=\"s1\"\u003e\u0026#39;sm_20\u0026#39;\u003c/span\u003e, and \u003cspan class=\"s1\"\u003e\u0026#39;sm_21\u0026#39;\u003c/span\u003e architectures are deprecated, and may be removed in a future release \u003cspan class=\"o\"\u003e(\u003c/span\u003eUse -Wno-deprecated-gpu-targets to suppress warning\u003cspan class=\"o\"\u003e)\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir -p ../../bin/x86_64/linux/release\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecp deviceQuery ../../bin/x86_64/linux/release\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 如果显示一些关于GPU的信息，则说明安装成功\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo ./deviceQuery\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e./deviceQuery Starting...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCUDA Device Query \u003cspan class=\"o\"\u003e(\u003c/span\u003eRuntime API\u003cspan class=\"o\"\u003e)\u003c/span\u003e version \u003cspan class=\"o\"\u003e(\u003c/span\u003eCUDART static linking\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDetected \u003cspan class=\"m\"\u003e1\u003c/span\u003e CUDA Capable device\u003cspan class=\"o\"\u003e(\u003c/span\u003es\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDevice 0: \u003cspan class=\"s2\"\u003e\u0026#34;GeForce GTX 950M\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCUDA Driver Version / Runtime Version          9.0 / 8.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCUDA Capability Major/Minor version number:    5.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTotal amount of global memory:                 \u003cspan class=\"m\"\u003e2003\u003c/span\u003e MBytes \u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"m\"\u003e2100232192\u003c/span\u003e bytes\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003e 5\u003cspan class=\"o\"\u003e)\u003c/span\u003e Multiprocessors, \u003cspan class=\"o\"\u003e(\u003c/span\u003e128\u003cspan class=\"o\"\u003e)\u003c/span\u003e CUDA Cores/MP:     \u003cspan class=\"m\"\u003e640\u003c/span\u003e CUDA Cores\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGPU Max Clock rate:                            \u003cspan class=\"m\"\u003e1124\u003c/span\u003e MHz \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.12 GHz\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMemory Clock rate:                             \u003cspan class=\"m\"\u003e900\u003c/span\u003e Mhz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMemory Bus Width:                              128-bit\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eL2 Cache Size:                                 \u003cspan class=\"m\"\u003e2097152\u003c/span\u003e bytes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMaximum Texture Dimension Size \u003cspan class=\"o\"\u003e(\u003c/span\u003ex,y,z\u003cspan class=\"o\"\u003e)\u003c/span\u003e         \u003cspan class=\"nv\"\u003e1D\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e65536\u003cspan class=\"o\"\u003e)\u003c/span\u003e, \u003cspan class=\"nv\"\u003e2D\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e65536, 65536\u003cspan class=\"o\"\u003e)\u003c/span\u003e, \u003cspan class=\"nv\"\u003e3D\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e4096, 4096, 4096\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMaximum Layered 1D Texture Size, \u003cspan class=\"o\"\u003e(\u003c/span\u003enum\u003cspan class=\"o\"\u003e)\u003c/span\u003e layers  \u003cspan class=\"nv\"\u003e1D\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e16384\u003cspan class=\"o\"\u003e)\u003c/span\u003e, \u003cspan class=\"m\"\u003e2048\u003c/span\u003e layers\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMaximum Layered 2D Texture Size, \u003cspan class=\"o\"\u003e(\u003c/span\u003enum\u003cspan class=\"o\"\u003e)\u003c/span\u003e layers  \u003cspan class=\"nv\"\u003e2D\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e16384, 16384\u003cspan class=\"o\"\u003e)\u003c/span\u003e, \u003cspan class=\"m\"\u003e2048\u003c/span\u003e layers\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTotal amount of constant memory:               \u003cspan class=\"m\"\u003e65536\u003c/span\u003e bytes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTotal amount of shared memory per block:       \u003cspan class=\"m\"\u003e49152\u003c/span\u003e bytes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTotal number of registers available per block: \u003cspan class=\"m\"\u003e65536\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWarp size:                                     \u003cspan class=\"m\"\u003e32\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMaximum number of threads per multiprocessor:  \u003cspan class=\"m\"\u003e2048\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMaximum number of threads per block:           \u003cspan class=\"m\"\u003e1024\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMax dimension size of a thread block \u003cspan class=\"o\"\u003e(\u003c/span\u003ex,y,z\u003cspan class=\"o\"\u003e)\u003c/span\u003e: \u003cspan class=\"o\"\u003e(\u003c/span\u003e1024, 1024, 64\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMax dimension size of a grid size    \u003cspan class=\"o\"\u003e(\u003c/span\u003ex,y,z\u003cspan class=\"o\"\u003e)\u003c/span\u003e: \u003cspan class=\"o\"\u003e(\u003c/span\u003e2147483647, 65535, 65535\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMaximum memory pitch:                          \u003cspan class=\"m\"\u003e2147483647\u003c/span\u003e bytes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTexture alignment:                             \u003cspan class=\"m\"\u003e512\u003c/span\u003e bytes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eConcurrent copy and kernel execution:          Yes with \u003cspan class=\"m\"\u003e1\u003c/span\u003e copy engine\u003cspan class=\"o\"\u003e(\u003c/span\u003es\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRun \u003cspan class=\"nb\"\u003etime\u003c/span\u003e limit on kernels:                     Yes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIntegrated GPU sharing Host Memory:            No\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSupport host page-locked memory mapping:       Yes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAlignment requirement \u003cspan class=\"k\"\u003efor\u003c/span\u003e Surfaces:            Yes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDevice has ECC support:                        Disabled\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDevice supports Unified Addressing \u003cspan class=\"o\"\u003e(\u003c/span\u003eUVA\u003cspan class=\"o\"\u003e)\u003c/span\u003e:      Yes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDevice PCI Domain ID / Bus ID / location ID:   \u003cspan class=\"m\"\u003e0\u003c/span\u003e / \u003cspan class=\"m\"\u003e1\u003c/span\u003e / \u003cspan class=\"m\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCompute Mode:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u0026lt; Default \u003cspan class=\"o\"\u003e(\u003c/span\u003emultiple host threads can use ::cudaSetDevice\u003cspan class=\"o\"\u003e()\u003c/span\u003e with device simultaneously\u003cspan class=\"o\"\u003e)\u003c/span\u003e \u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edeviceQuery, CUDA \u003cspan class=\"nv\"\u003eDriver\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e CUDART, CUDA Driver \u003cspan class=\"nv\"\u003eVersion\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e 9.0, CUDA Runtime \u003cspan class=\"nv\"\u003eVersion\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e 8.0, \u003cspan class=\"nv\"\u003eNumDevs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e 1, \u003cspan class=\"nv\"\u003eDevice0\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e GeForce GTX 950M\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eResult\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e PASS\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"0x02-安装-cudnn\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x02-%e5%ae%89%e8%a3%85-cudnn\" class=\"header-mark\"\u003e\u003c/a\u003e0x02 安装 \u003ccode\u003ecuDNN\u003c/code\u003e\u003c/h2\u003e\u003cp\u003e安装教程： \u003ca href=\"https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-5\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo dpkg -i ~/Downloads/libcudnn7_7.1.4.18-1+cuda8.0_amd64.deb\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo dpkg -i ~/Downloads/libcudnn7-dev_7.1.4.18-1+cuda8.0_amd64.deb\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo dpkg -i ~/Downloads/libcudnn7-doc_7.1.4.18-1+cuda8.0_amd64.deb\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"运行-cudnn-测试用例\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e8%bf%90%e8%a1%8c-cudnn-%e6%b5%8b%e8%af%95%e7%94%a8%e4%be%8b\" class=\"header-mark\"\u003e\u003c/a\u003e运行 \u003ccode\u003ecuDNN\u003c/code\u003e 测试用例\u003c/h3\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-6\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Copy the cuDNN sample to a writable path.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# cp -r /usr/src/cudnn_samples_v7/ \u003cspan class=\"nv\"\u003e$HOME\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Go to the writable path.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# \u003cspan class=\"nb\"\u003ecd\u003c/span\u003e \u003cspan class=\"nv\"\u003e$HOME\u003c/span\u003e/cudnn_samples_v7/mnistCUDNN\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Compile the mnistCUDNN sample.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# make clean \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e make\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Run the mnistCUDNN sample. \u0026#39;Test passed!\u0026#39; means cuDNN works.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# ./mnistCUDNN\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e……\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTest passed!\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch4 id=\"故障排除没有-libcudartso80\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%95%85%e9%9a%9c%e6%8e%92%e9%99%a4%e6%b2%a1%e6%9c%89-libcudartso80\" class=\"header-mark\"\u003e\u003c/a\u003e故障排除：没有 \u003ccode\u003elibcudart.so.8.0\u003c/code\u003e\u003c/h4\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-7\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e./mnistCUDNN: error \u003cspan class=\"k\"\u003ewhile\u003c/span\u003e loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 解决办法：https://blog.csdn.net/u011636567/article/details/77162217\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 首先检查 /usr/local/cuda-8.0/lib64 目录，看看 libcudart.so.8.0 是否存在，如果不存在，则先正确安装 cuda; 如果确定 cuda 已经存在，这个问题的出现与 Linux 的 ldconfig 命令有关\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e以下两种方法同理： \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 1.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo ldconfig /usr/local/cuda-8.0/lib64 \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 2.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# \u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eLD_LIBRARY_PATH\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$LD_LIBRARY_PATH\u003c/span\u003e:/usr/local/cuda-8.0/lib64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 如果仍然不行，再尝试执行: \u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# \u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003ePATH\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$PATH\u003c/span\u003e:/usr/local/cuda-8.0/bin \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# \u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eLIBRARY_PATH\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$LIBRARY_PATH\u003c/span\u003e:/usr/local/cuda-8.0/lib64 \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# \u003cspan class=\"nb\"\u003esource\u003c/span\u003e /etc/profile \u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"0x03-在-caffe-中启用-gpu\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x03-%e5%9c%a8-caffe-%e4%b8%ad%e5%90%af%e7%94%a8-gpu\" class=\"header-mark\"\u003e\u003c/a\u003e0x03 在 \u003ccode\u003eCaffe\u003c/code\u003e 中启用 GPU\u003c/h2\u003e\u003ch3 id=\"查看-cuda-和-cudnn-版本\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e6%9f%a5%e7%9c%8b-cuda-%e5%92%8c-cudnn-%e7%89%88%e6%9c%ac\" class=\"header-mark\"\u003e\u003c/a\u003e查看 \u003ccode\u003eCUDA\u003c/code\u003e 和 \u003ccode\u003ecuDNN\u003c/code\u003e 版本：\u003c/h3\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-8\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# CUDA\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# cat /usr/local/cuda/version.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# if cuDNN was installed from a tar file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# cat /usr/local/cuda/include/cudnn.h \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep CUDNN_MAJOR -A \u003cspan class=\"m\"\u003e2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# if cuDNN was installed from a debian file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# cat /usr/include/cudnn.h \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep CUDNN_MAJOR -A \u003cspan class=\"m\"\u003e2\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"切换-caffe-到-cudnn-加速模式并测试运行手写体识别\" class=\"headerLink\"\u003e\n    \u003ca href=\"#%e5%88%87%e6%8d%a2-caffe-%e5%88%b0-cudnn-%e5%8a%a0%e9%80%9f%e6%a8%a1%e5%bc%8f%e5%b9%b6%e6%b5%8b%e8%af%95%e8%bf%90%e8%a1%8c%e6%89%8b%e5%86%99%e4%bd%93%e8%af%86%e5%88%ab\" class=\"header-mark\"\u003e\u003c/a\u003e切换 \u003ccode\u003eCaffe\u003c/code\u003e 到 \u003ccode\u003ecuDNN\u003c/code\u003e 加速模式并测试运行手写体识别\u003c/h3\u003e\u003cp\u003e首先修改 \u003ccode\u003eMakefile.config\u003c/code\u003e：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-9\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo vim ~/caffe/Makefile.config\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 注释掉仅 CPU 模式开关\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# CPU_ONLY := 1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 打开 cuDNN 加速开关\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUSE_CUDNN :\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e然后重新编译整个工程（根据输出可以观察到编译的对象是 \u003ccode\u003e~/caffe/src/caffe\u003c/code\u003e 下的 \u003ccode\u003e*.cu\u003c/code\u003e 和 \u003ccode\u003e*.cpp\u003c/code\u003e）：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-10\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# make clean \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e make -j8\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e在运行时启用 GPU 有两种方式:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e运行 MNIST 例程前，修改训练超参数文件：\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-11\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo vim examples/mnist/lenet_solver.prototxt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 改 CPU 为 GPU\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esolver_mode: GPU\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#   运行 MNIST 识别程序\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# ./examples/mnist/train_lenet.sh\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003e运行时使用参数指定 GPU 执行\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-12\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# ./examples/mnist/train_lenet.sh -gpu \u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"0x04-补充确认-make-编译时调用的-gpu-核数\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x04-%e8%a1%a5%e5%85%85%e7%a1%ae%e8%ae%a4-make-%e7%bc%96%e8%af%91%e6%97%b6%e8%b0%83%e7%94%a8%e7%9a%84-gpu-%e6%a0%b8%e6%95%b0\" class=\"header-mark\"\u003e\u003c/a\u003e0x04 补充：确认 \u003ccode\u003emake\u003c/code\u003e 编译时调用的 GPU 核数\u003c/h2\u003e\u003cblockquote\u003e\n  \u003cp\u003e\u003ccode\u003e总核数\u003c/code\u003e = \u003ccode\u003e物理 CPU 个数\u003c/code\u003e X \u003ccode\u003e每颗物理 CPU 的核数\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e总逻辑 CPU 数\u003c/code\u003e = \u003ccode\u003e物理 CPU 个数\u003c/code\u003e X \u003ccode\u003e每颗物理 CPU 的核数\u003c/code\u003e X \u003ccode\u003e超线程数\u003c/code\u003e\u003c/p\u003e\n\n\u003c/blockquote\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-13\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 查看物理 CPU 个数\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# cat /proc/cpuinfo\u003cspan class=\"p\"\u003e|\u003c/span\u003e grep \u003cspan class=\"s2\"\u003e\u0026#34;physical id\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e sort\u003cspan class=\"p\"\u003e|\u003c/span\u003e uniq\u003cspan class=\"p\"\u003e|\u003c/span\u003e wc -l\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 查看每个物理 CPU 中 core 的个数（即核数）\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# cat /proc/cpuinfo\u003cspan class=\"p\"\u003e|\u003c/span\u003e grep \u003cspan class=\"s2\"\u003e\u0026#34;cpu cores\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e uniq\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 查看逻辑 CPU 的个数\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# cat /proc/cpuinfo\u003cspan class=\"p\"\u003e|\u003c/span\u003e grep \u003cspan class=\"s2\"\u003e\u0026#34;processor\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e wc -l\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e16\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# make 的时候就可以 make -j16\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"0x05-补充监测-gpu-运行情况\" class=\"headerLink\"\u003e\n    \u003ca href=\"#0x05-%e8%a1%a5%e5%85%85%e7%9b%91%e6%b5%8b-gpu-%e8%bf%90%e8%a1%8c%e6%83%85%e5%86%b5\" class=\"header-mark\"\u003e\u003c/a\u003e0x05 补充：监测 GPU 运行情况\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e第三方工具：\u003ca href=\"ttps://github.com/mountassir/gmonitor/releases\" target=\"_blank\" rel=\"noopener noreferrer\"\u003egmonitor\u003c/a\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-14\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# tar xvzf gmonitor-v1.3.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# sudo cp ~/Downloads/gmonitor /usr/local/bin/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# gmonitor\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003cli\u003e官方工具：nvidia-smi（安装完显卡驱动后自带）\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-15\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 每10s刷新一次\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser@machine:~# watch -n \u003cspan class=\"m\"\u003e10\u003c/span\u003e nvidia-smi\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "如何在 Ubuntu 上安装深度截图",
        "date_published" : "2019-02-25T09:11:06Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/install-deepin-screenshot-on-ubuntu/",
        "url" : "https://xuchunqiu.com/install-deepin-screenshot-on-ubuntu/",
        "summary": " Update深度截图目前已有 官方介绍、使用说明，但依然没有提供从深度商店外安装深度截图的教程。\nappimage 格式深度截图的下载地址已经失效，但依然可以从互联网档案馆上 下载（35.7 MB）。\n",
        "content_html" : "\u003ch1 id=\"update\" class=\"headerLink\"\u003e\n    \u003ca href=\"#update\" class=\"header-mark\"\u003e\u003c/a\u003eUpdate\u003c/h1\u003e\u003cp\u003e深度截图目前已有 \u003ca href=\"https://www.deepin.org/zh/original/deepin-screenshot/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e官方介绍\u003c/a\u003e、\u003ca href=\"https://wiki.deepin.org/wiki/%E6%B7%B1%E5%BA%A6%E6%88%AA%E5%9B%BE\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e使用说明\u003c/a\u003e，但依然没有提供从深度商店外安装深度截图的教程。\u003c/p\u003e\n\u003cp\u003eappimage 格式深度截图的下载地址已经失效，但依然可以从互联网档案馆上 \u003ca href=\"https://web.archive.org/web/20201120043221/https://github-production-release-asset-2e65be.s3.amazonaws.com/110259696/6110e818-0909-11e8-92a8-e734dc188fe0?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026amp;X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20201120%2Fus-east-1%2Fs3%2Faws4_request\u0026amp;X-Amz-Date=20201120T043221Z\u0026amp;X-Amz-Expires=300\u0026amp;X-Amz-Signature=134866f6be04ad00a4eaf1a2aa00604d5fbfd4fe5f9597a94a2a92da3d758053\u0026amp;X-Amz-SignedHeaders=host\u0026amp;actor_id=0\u0026amp;key_id=0\u0026amp;repo_id=110259696\u0026amp;response-content-disposition=attachment%3B%20filename%3DDeepin_Screenshot_4.0.10.4-x86_64.AppImage\u0026amp;response-content-type=application%2Foctet-stream\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e下载（35.7 MB）\u003c/a\u003e。\u003c/p\u003e\n\u003ch2 id=\"1-下载深度截图\" class=\"headerLink\"\u003e\n    \u003ca href=\"#1-%e4%b8%8b%e8%bd%bd%e6%b7%b1%e5%ba%a6%e6%88%aa%e5%9b%be\" class=\"header-mark\"\u003e\u003c/a\u003e1. 下载深度截图\u003c/h2\u003e\u003cp\u003e从以下地址下载第三方打包的深度截图：\u003c/p\u003e\n\u003cp\u003e\u003cdel\u003e\u003ca href=\"https://github.com/ZetaoYang/deepin-app-package/releases\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://github.com/ZetaoYang/deepin-app-package/releases\u003c/a\u003e\u003c/del\u003e\u003c/p\u003e\n\u003ch2 id=\"2-运行\" class=\"headerLink\"\u003e\n    \u003ca href=\"#2-%e8%bf%90%e8%a1%8c\" class=\"header-mark\"\u003e\u003c/a\u003e2. 运行\u003c/h2\u003e\u003cp\u003e首先添加执行权限\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003echmod +x ./Deepin_Screenshot-x86_64.AppImage\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e使用方法：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGUI： 文件管理器双击\u003c/li\u003e\n\u003cli\u003eCLI：\u003ccode\u003e~/Downloads/Deepin_Screenshot_4.0.10.4-x86_64.AppImage\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"3-让深度截图在-ubuntu-启动台显示\" class=\"headerLink\"\u003e\n    \u003ca href=\"#3-%e8%ae%a9%e6%b7%b1%e5%ba%a6%e6%88%aa%e5%9b%be%e5%9c%a8-ubuntu-%e5%90%af%e5%8a%a8%e5%8f%b0%e6%98%be%e7%a4%ba\" class=\"header-mark\"\u003e\u003c/a\u003e3. 让深度截图在 Ubuntu 启动台显示\u003c/h2\u003e\u003ch3 id=\"31-appimagelauncher-法\" class=\"headerLink\"\u003e\n    \u003ca href=\"#31-appimagelauncher-%e6%b3%95\" class=\"header-mark\"\u003e\u003c/a\u003e\u003cdel\u003e3.1 AppImageLauncher 法\u003c/del\u003e\u003c/h3\u003e\u003cp\u003eAppImageLauncher 顾名思义是一个可以快速把 appimage 软件加入启动台的工具。只需要从 \u003ca href=\"https://github.com/TheAssassin/AppImageLauncher/releases\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://github.com/TheAssassin/AppImageLauncher/releases\u003c/a\u003e 下载的合适版本，然后执行以下命令安装\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-2\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo dpkg -i ~/Downloads/appimagelauncher_1.0.3-travis508.git20190223.0c6d768_amd64.deb\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e理论上再次双击之前的 Deepin_Screenshot_4.0.10.4-x86_64.AppImage 就可以初始化 AppImageLauncher，进而可以把 Deepin_Screenshot_4.0.10.4-x86_64.AppImage 显示在 LaunchPad。不幸的是我双击后遇到闪退。\u003c/p\u003e\n\u003ch3 id=\"32-手动法\" class=\"headerLink\"\u003e\n    \u003ca href=\"#32-%e6%89%8b%e5%8a%a8%e6%b3%95\" class=\"header-mark\"\u003e\u003c/a\u003e3.2 手动法\u003c/h3\u003e\u003cp\u003e此方法适用于所有只能命令行启动的程序，只需要在 /usr/share/applications/ 下添加一个配置文件就能让程序显示在 Ubuntu 启动台上。但在开始之前，为了美观还需要一个合适的图标，我是从 \u003ca href=\"http://appstore.deepin.com/data/v1/workaround/metadata/deepin-screenshot/meta/icons/deepin-screenshot.svg\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttp://appstore.deepin.com/data/v1/workaround/metadata/deepin-screenshot/meta/icons/deepin-screenshot.svg\u003c/a\u003e 下载图标，然后用在线工具转为PNG格式备用。\u003c/p\u003e\n\u003cp\u003e按照 \u003ca href=\"https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84%E6%A0%87%E5%87%86\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e文件系统层次结构标准\u003c/a\u003e 为深度截图在 \u003ccode\u003e/opt\u003c/code\u003e 下创建目录：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-3\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo mkdir /opt/deepinscreenshot\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e然后把 appimage 程序和 PNG 格式的图标复制进去：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-4\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo cp ~/Downloads/Deepin_Screenshot_4.0.10.4-x86_64.AppImage /opt/deepinscreenshot/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo cp ~/Downloads/deepin-screenshot-24px.png /opt/deepinscreenshot/\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003cdel\u003e注入灵魂\u003c/del\u003e 注册应用程序到启动台：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-5\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo vim /usr/share/applications/biubiubiu.desktop\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"details admonition info open\"\u003e\n    \u003cdiv class=\"details-summary admonition-title\"\u003e\n        \u003cspan class=\"icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"/\u003e\u003c/svg\u003e\u003c/span\u003ebiubiubiu.desktop 的内容示例\u003cspan class=\"details-icon\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"details-content\"\u003e\n        \u003cdiv class=\"admonition-content\"\u003e\u003cdiv class=\"code-block highlight is-closed show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003etext\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-6\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e[Desktop Entry]\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eName=biubiubiu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eName[zh_CN]=深度截图\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExec=/opt/deepinscreenshot/Deepin_Screenshot_4.0.10.4-x86_64.AppImage\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIcon=/opt/deepinscreenshot/deepin-screenshot-24px.png\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTerminal=false\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eX-MultipleArgs=false\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eType=Application\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEncoding=UTF-8\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCategories=Application;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eStartupNotify=false\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e然后就可以在 LaunchPad 看到图标了，鼠标拖拽即可固定到 dock 栏。\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    {
        "title" : "如何在 Ubuntu 上安装 QQ",
        "date_published" : "2019-02-25T08:24:22Z",
        "date_modified" : "2024-10-24T08:03:29Z",
        "id" : "https://xuchunqiu.com/install-qq-on-ubuntu/",
        "url" : "https://xuchunqiu.com/install-qq-on-ubuntu/",
        "summary": " Update深度的 维基页面 现在已经列出了直接使用 apt 命令安装 QQ轻聊版、QQ 标准版 的方法。\n1. 安装 Deepin wine 环境 bash\n",
        "content_html" : "\u003ch1 id=\"update\" class=\"headerLink\"\u003e\n    \u003ca href=\"#update\" class=\"header-mark\"\u003e\u003c/a\u003eUpdate\u003c/h1\u003e\u003cp\u003e深度的 \u003ca href=\"https://wiki.deepin.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e维基页面\u003c/a\u003e 现在已经列出了直接使用 \u003ccode\u003eapt\u003c/code\u003e 命令安装 \u003ca href=\"https://wiki.deepin.org/wiki/QQ%E8%BD%BB%E8%81%8A%E7%89%88\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eQQ轻聊版\u003c/a\u003e、\u003ca href=\"https://wiki.deepin.org/wiki/QQ\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eQQ 标准版\u003c/a\u003e 的方法。\u003c/p\u003e\n\u003ch2 id=\"1-安装-deepin-wine-环境\" class=\"headerLink\"\u003e\n    \u003ca href=\"#1-%e5%ae%89%e8%a3%85-deepin-wine-%e7%8e%af%e5%a2%83\" class=\"header-mark\"\u003e\u003c/a\u003e1. 安装 Deepin wine 环境\u003c/h2\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-1\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 下载\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit clone https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 执行安装脚本\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo sh ./deepin-wine-for-ubuntu/install.sh\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"2-安装-deepin-版-tim-安装包\" class=\"headerLink\"\u003e\n    \u003ca href=\"#2-%e5%ae%89%e8%a3%85-deepin-%e7%89%88-tim-%e5%ae%89%e8%a3%85%e5%8c%85\" class=\"header-mark\"\u003e\u003c/a\u003e2. 安装 Deepin 版 TIM 安装包\u003c/h2\u003e\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-2\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 下载\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewget http://packages.deepin.com/deepin/pool/non-free/d/deepin.com.qq.office/deepin.com.qq.office_2.0.0deepin4_i386.deb\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 解包安装\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo dpkg -i ./Downloads/deepin.com.qq.office_2.0.0deepin4_i386.deb\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 在 Ubuntu 的 Lauchpad 应已出现 TIM 的图标，单击启动、登录，应该就可以正常使用了\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"3-可选解决在高分屏-gui-过小的问题\" class=\"headerLink\"\u003e\n    \u003ca href=\"#3-%e5%8f%af%e9%80%89%e8%a7%a3%e5%86%b3%e5%9c%a8%e9%ab%98%e5%88%86%e5%b1%8f-gui-%e8%bf%87%e5%b0%8f%e7%9a%84%e9%97%ae%e9%a2%98\" class=\"header-mark\"\u003e\u003c/a\u003e3. 可选：解决在高分屏 GUI 过小的问题\u003c/h2\u003e\u003cp\u003e使用如下命令调出 wine 的配置页面：\u003c/p\u003e\n\u003cdiv class=\"code-block highlight is-open show-line-numbers  tw-group tw-my-2\"\u003e\n  \u003cdiv class=\"\n    code-block-title \n    \n    tw-flex \n    tw-flex-row \n    tw-justify-between \n    tw-w-full tw-bg-bgColor-secondary\n    \"\u003e      \n    \u003cbutton \n      class=\"\n        tw-select-none \n        tw-mx-2 \n        tw-block\n        group-[.is-open]:tw-rotate-90\n        tw-transition-[transform] \n        tw-duration-500 \n        tw-ease-in-out\n        print:!tw-hidden\"\n      disabled\n      aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n    \u003cdiv class=\"code-block-title-bar tw-w-full\"\u003e\n      \u003cp class=\"tw-select-none !tw-my-1\"\u003ebash\u003c/p\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"tw-flex\"\u003e\n      \u003cbutton \n        class=\"\n          line-number-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.show-line-numbers]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle line numbers\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n\n      \u003cbutton \n        class=\"\n          wrap-code-button\n          tw-select-none \n          tw-mx-2 \n          tw-hidden \n          group-[.is-open]:tw-block \n          group-[.is-wrap]:tw-text-fgColor-link \n          print:!tw-hidden\" \n        title=\"Toggle code wrap\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n      \n      \u003cbutton \n        class=\"\n          copy-code-button\n          tw-select-none\n          tw-mx-2 \n          tw-hidden\n          group-[.is-open]:tw-block\n          hover:tw-text-fgColor-link \n          print:!tw-hidden\"\n        title=\"Copy code\"\u003e\n          \u003cspan class=\"copy-icon tw-block\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n          \u003cspan class=\"check-icon tw-hidden\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n      \u003c/button\u003e\n        \n      \u003cbutton \n        class=\"\n          tw-select-none \n          tw-mx-2 \n          tw-block \n          group-[.is-open]:tw-hidden \n          print:!tw-hidden\" \n        disabled\n        aria-hidden=\"true\"\u003e\u003csvg class=\"icon\"\n    xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"\u003e\u003c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\u003e\u003cpath d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre style=\"counter-reset: codeblock;\" class=\"tw-block tw-m-0 tw-p-0\"\u003e\u003ccode \n    id=\"codeblock-id-3\" \n    class=\"\n      chroma \n      !tw-block \n      tw-p-0\n      tw-m-0\n      tw-transition-[max-height] \n      tw-duration-500 \n      tw-ease-in-out \n      group-[.is-closed]:!tw-max-h-0 \n      group-[.is-wrap]:tw-text-wrap\n      tw-overflow-y-hidden\n      tw-overflow-x-auto\n      tw-scrollbar-thin\n      \"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eWINEPREFIX\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e~/.deepinwine/Deepin-TIM/ deepin-wine winecfg\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003e在 Graphics 选项卡中往大调整 Screen resolution 的值，调好后重新运行 TIM 即可看到效果。\u003c/p\u003e\n",
        "language": "zh-cn"
    },
    ]
}
