Ubuntu 18.0.4 SonarQube-7.1.x 安装教程 以及错误总结

news2024/12/23 10:25:26

Ubuntu 18.0.4 SonarQube-7.1.x 安装教程

docker安装未成功

zip安装

1. 下载地址

  • sonarQube最新版下载地址:(最新版不支持mysql)https://www.sonarqube.org/downloads/
  • 7.1版本下载地址:​ ​https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.1.zip​​
  • Sonar-Scanner 2.5下载地址:​ ​https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/​​

下载不了:参考该地址中的下载:
https://blog.51cto.com/u_14082075/5465953#1__6

2. 环境准备

(1)Java环境(1.8+)

(2)MySql数据库(5.6+)

(3)SonarQube 7.1

注意:sonarQube 7.9的版本之后就不在支持mysql,所以下载的是7.1版本。

3.上传到ubuntu

//解压
unzip sonarqube-6.7.7.zip
//移动目录
mv sonarqube-6.7.7 /usr/local/sonar

4. 数据库配置

.进入mysql容器并创建用户账户密码均为sonar

# docker exec -it mysql bash
# mysql -u root -p
# create database sonar;

# CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';

# GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';
# exit

5.配置sonar的数据库信息(vim conf/sonar.properties)

安装目录下的conf中的配置文件,

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

6.启动

不能使用root用户启动,新建个用户

//新建用户
useradd sonar
//赋权
chown -R sonar.sonar /usr/local/sonar
//修改密码
passwd sonar
//切换到sonar用户
su sonar
//启动
./bin/linux-x86-64/sonar.sh console

7. 登录系统

http://ip:9000 用户名密码:admin
汉化,重启服务即可

安装后,汉化

在这里插入图片描述

如果出现“Error while downloading plugin ‘l10nzhtw’ with version ‘1.0’. No compatible plugin found.”错误,那说明版本不兼容,可到官网查找对应版本的插件放到…/…/extensions/plugins目录下,重新启动sonar服务【使用命令…/…/sonar.sh start 也可以通过页面操作“配置->系统->重启服务器”】,即可生效。但如果安装的插件比当前版本低的话,会出现部分显示还是英文。

汉化插件下载[找到对应的版本,下载对应的插件]:https://github.com/xuhuisheng/sonar-l10n-zh/releases?page=2

放到该路径下:

cd /usr/local/sonarqube-8.6.0/extensions/plugins

重启服务即可【不可使用root用户登录】

  • 生成令牌(需要将生成的令牌复制下来):
    在这里插入图片描述

启动成功后,会在对应的sonar中创建对应的数据库

在这里插入图片描述

错误总结

错误1:Elasticsearch 虚拟内存需要至少[262144]

# docker logs sonarqube_sonarqube_1
ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /opt/sonarqube/logs/sonarqube.log

解决方案:

大致看了一下,是因为ElasticSearch运行的时候最小内存消耗要达到262144,所以,如果是在自己的虚拟机运行,可以临时调整vm.max_map_count的大小,max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量,临时调整的语句如下:
sysctl -w vm.max_map_count=262144
调整之后再运行es集群就不会有问题了。
如果想永久修改vm.max_map_count的大小,则可以使用如下命令:
echo vm.max_map_count=262144>> /etc/sysctl.conf sysctl -p

未解决问题【docker安装】

一开始为了省事,使用docker安装,但是一直启动不起来,报错 Can not connect to database. Please check connectivity and settings (see the properties prefixed by ‘sonar.jdbc.’).

根据网上提供的方案,都没有用

  • 1.数据库用户名、密码均使用sonar/sonar 数据库名:sonar

docker安装步骤【未成功】

1…docker拉取sonarqube镜像

docker pull sonarqube:7.8-community

可在官网查找你想要的版本:https://hub.docker.com/_/sonarqube?tab=tags&page=9
在这里插入图片描述
2…进入mysql容器并创建用户账户密码均为sonar

# docker exec -it mysql bash
# mysql -u root -p
# create database sonar;

# CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';

# GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';
# exit

3.启动sonarqube

docker run -d --name sonar -p 9000:9000 -p 9092:9092 -v /data/sonar/conf:/opt/sonarqube/conf -v /data/sonar/data:/opt/sonarqube/data -v /data/sonar/logs:/opt/sonarqube/logs -v /data/sonar/extensions:/opt/sonarqube/extensions -e "SONARQUBE_DATABASE_USER=sonar" -e "SONARQUBE_DATABASE_NAME=sonar" -e "SONARQUBE_DATABASE_PASSWORD=sonar"  -e "SONARQUBE_JDBC_URL=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" sonarqube:7.8-community

4.对应的映射配置/data/sonar/conf中的数据库配置是否正确

vi sonar.properties

#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformanc
e#sonar.jdbc.username=sonar
#sonar.jdbc.password=sonar
#sonar.sorceEncoding=UTF-8
root@koal-ipsec:/data/sonar/conf# docker logs sonar 
2022.12.26 05:15:07 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2022.12.26 05:15:07 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2022.12.26 05:15:07 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/opt/sonarqube/elasticsearch]: /opt/sonarqube/elasticsearch/bin/elasticsearch -Epath.conf=/opt/sonarqube/temp/conf/es
2022.12.26 05:15:07 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2022.12.26 05:15:07 INFO  app[][o.e.p.PluginsService] no modules loaded
2022.12.26 05:15:07 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2022.12.26 05:15:14 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2022.12.26 05:15:14 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/opt/sonarqube]: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/./urandom -cp ./lib/common/*:./lib/server/*:/opt/sonarqube/lib/jdbc/mysql/mysql-connector-java-5.1.42.jar org.sonar.server.app.WebServer /opt/sonarqube/temp/sq-process8004789798386622755properties
2022.12.26 05:15:14 INFO  web[][o.s.p.ProcessEntryPoint] Starting web
2022.12.26 05:15:15 INFO  web[][o.a.t.u.n.NioSelectorPool] Using a shared selector for servlet write/read
2022.12.26 05:15:15 INFO  web[][o.e.p.PluginsService] no modules loaded
2022.12.26 05:15:15 INFO  web[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.index.reindex.ReindexPlugin]
2022.12.26 05:15:15 INFO  web[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.join.ParentJoinPlugin]
2022.12.26 05:15:15 INFO  web[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.percolator.PercolatorPlugin]
2022.12.26 05:15:15 INFO  web[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2022.12.26 05:15:16 INFO  web[][o.s.s.e.EsClientProvider] Connected to local Elasticsearch: [127.0.0.1:9001]
2022.12.26 05:15:16 INFO  web[][o.s.s.p.LogServerVersion] SonarQube Server / 6.7.5.38563 / ec8ab77fa180a9edaf664075e8e76ae0b4a2d9f1
2022.12.26 05:15:16 INFO  web[][o.sonar.db.Database] Create JDBC data source for jdbc:mysql://127.0.0.1:3306/db_sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
2022.12.26 05:15:16 ERROR web[][o.s.s.p.Platform] Web server startup failed
java.lang.IllegalStateException: Can not connect to database. Please check connectivity and settings (see the properties prefixed by 'sonar.jdbc.').
        at org.sonar.db.DefaultDatabase.checkConnection(DefaultDatabase.java:108)
        at org.sonar.db.DefaultDatabase.start(DefaultDatabase.java:75)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)
        at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89)
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
        at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
        at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
        at org.picocontainer.behaviors.Stored.start(Stored.java:110)
        at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)
        at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)
        at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:134)
        at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:90)
        at org.sonar.server.platform.Platform.start(Platform.java:211)
        at org.sonar.server.platform.Platform.startLevel1Container(Platform.java:170)
        at org.sonar.server.platform.Platform.init(Platform.java:86)
        at org.sonar.server.platform.web.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:45)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
        at org.sonar.db.profiling.NullConnectionInterceptor.getConnection(NullConnectionInterceptor.java:31)
        at org.sonar.db.profiling.ProfiledDataSource.getConnection(ProfiledDataSource.java:323)
        at org.sonar.db.DefaultDatabase.checkConnection(DefaultDatabase.java:106)
        ... 29 common frames omitted
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:341)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2192)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2225)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
        at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
        at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
        at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
        ... 34 common frames omitted
Caused by: java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300)
        ... 50 common frames omitted
2022.12.26 05:15:17 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
2022.12.26 05:15:17 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
2022.12.26 05:15:17 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
2022.12.26 05:15:17 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【UE4 第一人称射击游戏】10-添加冲刺功能

上一篇&#xff1a; 【UE4 第一人称射击游戏】09-添加蹲伏功能 本篇效果&#xff1a; 步骤&#xff1a; 1.在“Character”文件夹内添加一个混合空间 骨架选择“Swat_Skeleton” 命名为“Sprint_BS” 双击打开“Sprint_BS”&#xff0c;将水平和垂直坐标名称分别设为“Direct…

【java】HashMap底层原理实现原理及面试题

目录一.哈希表(散列)1.什么是哈希表2.什么是哈希冲突(面试题)3.解决哈希冲突的方法(面试题)(1) 开放地址法① 线性探查②二次探查③随机探查(2) 再哈希法(3) 链地址法(4)建立公共溢出区二.HashMap1.HashMap的hash()算法(面试)(1)为什么不是h key.hashCode()直接返回&#xff0…

绘制菜单符号的技法

在上一篇文章中&#xff0c;我们了解了如何绘制主题化的和原始未主题化的单选按钮&#xff0c;我曾提到&#xff0c;绘制菜单符号会更加复杂一些。复杂之处在于&#xff0c;这些符号是通过单色位图实现的&#xff0c;而不是漂亮的全彩色位图。 首先&#xff0c;我们将通过一种错…

linux内核调度子系统随笔(一)

调度子系统组件(1) 调度类用于判断接下来运行哪个进程&#xff0c;内核支持不同的调度策略(完全公平调度,实时调度)&#xff1b;调度类使得能够以模块化方法实现这些策略; (2) 在选中将要选择的进程后&#xff0c;必须执行底层任务切换&#xff1b;需要与cpu的紧密交互&#x…

信息安全管理体系

环境迁移 Platfor m Ops for AI 作为整合了 DataOps、MLOps、ModelOps 的复杂技术平台&#xff0c;在项目开发时仅使用一套系统无法支撑平台的稳定搭建&#xff0c;往往需要开发系统、集成测试系统、正式 环境系统在项目生命周期 中协作配合。将表、索引、并发程序、配置内容等…

HTML5 新增属性

文章目录HTML5 新增属性公共属性hidden属性draggable属性contenteditable属性data-*属性input元素新增属性autocomplete属性autofocus属性placeholder属性required属性pattern属性form元素新增属性novalidate属性HTML5 新增属性 公共属性 HTML5新增的常见公共属性有4个&#…

在今年的数字生态大会上,云原生数据库前进了一大步

云计算时代&#xff0c;数据库上云已成为产业数字化转型的重要动力。近期&#xff0c;在2022腾讯全球数字生态大会云原生数据库技术探索专场上&#xff0c;腾讯云分享了在云原生数据库领域的技术演进与探索&#xff0c;并就其在不同行业场景中的最佳实践进行了详细讲解&#xf…

【C++初阶】stack、queue和priority_queue的模拟实现

文章目录简介stackqueuepriority_queuestack的模拟实现成员变量emptysizetoppushpopqueue的模拟实现成员变量emptysizetoppushpoppriority_queue的模拟实现成员变量emptysizetoppushpop仿函数完整版代码stack.hqueue.hpriority_queue.htest.cpp简介 stack、queue和priority_qu…

四、SpringBoot Starter组件详解

starter组件实际上就是能够实现自动装配的jar包。 1.starter组件创建流程 假设我现在要集成redis,要拿到redisTemplate对象,怎么做呢? 1.引springboot包; 2.创建RedisTemplate类; 3.写配置类; 4.创建spring.factories文件; 5.打成jar包。 示例如下: 1.创建maven项目…

我的世界MOD制作(2)|| 你的第一个MOD

正文&#xff1a;I. 开发环境配置 我们需要一个带mixin的forge开发环境&#xff0c;这一步相当折磨人&#xff0c;网络不好的话半天时间都得砸这上面&#xff0c;但是不要灰心&#xff0c;过了这个坎接下来基本是顺风顺水。 1. 下载资源 & 修改build.gradle 首先去forge官网…

从三万英尺看全链路灰度

作者&#xff1a;卜比 全链路灰度是微服务领域&#xff0c;很实用的企业级场景下的技术能力。 从本期开始&#xff0c;我们将通过《全链路灰度&#xff1a;自顶向下的方法》的系列文章&#xff0c;由远及近的剖析全链路灰度全貌&#xff0c;系列文章分为 4 篇&#xff1a; 《…

无需数据库的笔记flatnotes

本文完成于 10 月底&#xff1b; 什么是 flatnotes&#xff1f; flatnotes 是一个自托管的、无数据库的笔记 Web 应用程序&#xff0c;它利用文件夹存储 Markdown 文件。 官方演示站点&#xff1a;https://demo.flatnotes.io/ 前言 本文介绍的软件很简单&#xff0c;但是有两…

保姆级教学——Python+Pygame怎么实现吃豆豆游戏

耽搁十几天的时间&#xff0c;我顺利的从阳转阴啦&#xff0c; 以后的日子一切恢复正常&#xff0c;好好工作&#xff0c;积极分享。希望在座的小伙伴阳了的全部健康转阴&#xff0c;没阳的全部不会变阳&#xff0c;新的一年&#xff0c;一切顺顺利利。 不知道最近大家学习得怎…

前端大屏常用的几种适配方案

方 案实现方式优点缺点vm vh1.按照设计稿的尺寸&#xff0c;将px按比例计算转为vw和vh1.可以动态计算图表的宽高&#xff0c;字体等&#xff0c;灵活性较高 2.当屏幕比例跟 ui 稿不一致时&#xff0c;不会出现两边留白情况1.每个图表都需要单独做字体、间距、位移的适配&#x…

磨金石教育摄影技能干货分享|看看大师们如何把“树”拍成艺术品

树&#xff0c;可以说是我们生活中最为常见的物种了。 在不同的地域&#xff0c;不同的气候环境下&#xff0c;生长着不同的树种。 北方的白桦树、杨树、梅花&#xff1b;南方的凤凰花、榕树、梧桐等等。 无论哪个地方的树&#xff0c;都有别样的姿态。 1、相机作画 白雪没有覆…

python实验实践【2】深度学习的python包

python包的管理是使用python进行实验过程中最为重要的一环&#xff0c;很多时候运行他人代码失败的原因是没能按照对方的要求配置python包库。本篇博客重点介绍深度学习场景中python包的管理。 目录python包版本选择python包安装python包版本选择 使用pytorch进行深度学习训练…

AndroidRN的混合集成 下载不了RN的依赖可以看看 好使

一、混合开发 App 混合开发&#xff0c;指的是一个 App 部分功能用 Native 构建&#xff0c;其他功能使用跨端框架进行构建&#xff0c;最常见的场景是&#xff0c;Native 作为一个可工程&#xff0c;其实业务开发使用垮端框架进行开发。目前&#xff0c;比较流行的跨端框架有…

ORB-SLAM3算法学习—双目和单目初始化

0总述 ORB-SLAM3算法中视觉的初始化依旧放在tracking线程中&#xff0c;因此在tracking中没有为imu模式设置单独的初始化函数&#xff0c;而IMU的初始化是在localMapping中实现的。 很有用的参考链接&#xff1a;https://cloud.tencent.com/developer/article/1761043 1双目…

Python 基础教程(1)

1.翻转字符串 def reverseWords(input):# 通过空格将字符串分隔符&#xff0c;把各个单词分隔为列表inputWords input.split(" ")# 翻转字符串# 假设列表 list [1,2,3,4], # list[0]1, list[1]2 &#xff0c;而 -1 表示最后一个元素 list[-1]4 ( 与 list[3]4 一样…

C++ 使用CLion + LibTorch 调用Python训练的PyTorch模型-MNIST

C++ 使用CLion + LibTorch 调用Python训练的PyTorch模型-MNIST 安装LibTorch 进入pytorch官网地址,选则LibTorch版本将LibTorch安装包解压到libtorch-path目录中,libtorch-path是自定义的LibTorch安装目录。