cobra安装

安装cobra

cobra是golang中一个开发命令行程序的一个十分好用的包,但是安装起来是真的麻烦。安装过程无数困难,老师给的方案解释压根就不清楚。

首先最基本的,先确定你的GOPATH,GOROOT,GOBIN环境变量都设置好了。尤其是GOBIN,很容易疏忽。

以下的方法适用于linux、windows、mac三种系统。我们宿舍都是用这种方法装好的。

首先,cobra安装过程需要一些支持的包,没有这些东西的话半路会报错,会报各种莫名其妙的错误。但是事先装好这些依赖包,就没啥毛病了。这里需要的包是sys与text。放在哪里呢?放在$GOPATH$/src/golang.org/x/目录下。GOPATH就是你的go语言工作区。src目录下没有golang.org文件夹?手动新建一个。x文件夹也手动新建一个。

然后进入x文件夹,使用如下命令从git克隆这两个包。

git clone https://github.com/golang/sys.git
git clone https://github.com/golang/text.git

下载速度极慢!!等就行了。 首先先这这两个包装好,不然的话,下面那一步必定会报错。

2、包装好之后,就可以正常安装了。 

go get -v github.com/spf13/cobra/cobra

如果上一步弄的没问题的话,这一步理论上是不会出现问题的。假如又报错了,先检查自己的环境变量有没有设置好。如果还报错!抱歉我反正没报错我也不知道该怎么办。

3、接下来来看看cobra怎么用。

直接在你的src路径下运行go的install命令。

go install github.com/spf13/cobra/cobra

划重点:请一定事先确定好GOBIN环境变量已经设置好!!我就是因为这个问题搞了半天。如何设置GOBIN环境变量?和设置GOPATH的时候一模一样。在golang安装教程里,ubuntu和mac的教程一半都会教你怎么把GOBIN弄好,然后Windows!很多很多人都忽略了这个环境变量!在用户变量里新建一个GOBIN,指向你的工作区下的bin文件夹。然后再系统变量的PATH里添加GOBIN。使用go env命令来看看的你的GOBIN是不是设置好了。直接命令行随便一个路径下运行go env,要是这都报错,说明你go语言都没装上。

agenda-go开发过程

实训的时候开发过一次agenda程序,所以在实现的过程中很大程度上参考了实训的实现方式。由于cobra的存在使得go语言创建命令行变得十分容易。只要的架构是:

1、cmd文件夹内放各种命令。命令行通过读取参数之后,调用service层的函数来进行信息反馈。

2、service是各种命令的内核。service内的文件保存了控制agenda的各种高层API,这些API的实现又依赖于更加底层的API,即entity。

3、entity保存各个类的底层实现,并提供API供service层调用。

4、data文件夹用来保存各种用户信息会议信息出错信息等。

5、log文件夹中的文件封装了打开日志关闭日志的过程,service层通过调用log提供的API来方便地保存日志信息。

首先实现entity层的内容。这是最底层的类,时间、会议、用户、存储过程。这些类都提供API共服务层调用来修改类内部信息。

写好了entity之后就开始创建命令并将实现此命令的需要的操作封装成函数,保存在service层中。所以实现起来的时候是服务层和命令行一起进行的。命令行进行的操作封装成函数保存在服务层中,cmd内的各个命令只需要通过读取命令行提供给服务层参数就好,然后利用服务层函数的运行结果进行信息的反馈。创建命令的时候需要设计好各条命令的实现逻辑,然后设计好命令行参数使用户按照格式输入。输入不合法的时候服务层返回错误,命令行文件如果收到了错误则显示错误信息。

最后,再添加日志功能。将打开和关闭日志文件的操作封装成函数,然后修改服务层,使得服务层再运行完特定的函数之后可以保存日志信息。

最终的实现结果再github的readme中都有显示。

github链接:https://github.com/723Family/agenda

 

1 2/3维图像分割工具箱 2 PSORT粒子群优化工具箱 3 matlab计量工具箱Lesage 4 MatCont7p1 5 matlab模糊逻辑工具箱函数 6 医学图像处理工具箱 7 人工蜂群工具箱 8 MPT3安装包 9 drEEM toolbox 10 DOMFluor Toolbox v1.7 11 Matlab数学建模工具箱 12 马尔可夫决策过程(MDP)工具箱MDPtoolbox 13 国立SVM工具箱 14 模式识别与机器学习工具箱 15 ttsbox1.1语音合成工具箱 16 分数阶傅里叶变换的程序FRFT 17 魔方模拟器与规划求解 18 隐马尔可夫模型工具箱 HMM 19 图理论工具箱GrTheory 20 自由曲线拟合工具箱ezyfit 21 分形维数计算工具箱FracLab 2.2 22 For-Each 23 PlotPub 24 Sheffield大学最新遗传算法工具箱 25 Camera Calibration 像机标定工具箱 26 Qhull(二维三维三角分解、泰森图)凸包工具箱 2019版 27 jplv7 28 MatlabFns 29 张量工具箱Tensor Toolbox 30 海洋要素计算工具箱seawater 31 地图工具箱m_map 32 othercolor配色工具包 33 Matlab数学建模工具箱 34 元胞自动机 35 量子波函数演示工具箱 36 图像局域特征匹配工具箱 37 图像分割graphcut工具箱 38 NSGA-II工具箱 39 chinamap中国地图数据工具箱(大陆地区) 40 2D GaussFit高斯拟合工具箱 41 dijkstra最小成本路径算法 42 多维数据快速矩阵乘法 43 约束粒子群优化算法 44 脑MRI肿瘤的检测与分类 45 Matlab数值分析算法程序 46 matlab车牌识别完整程序 47 机器人工具箱robot-10.3.1 48 cvx凸优化处理工具箱 49 hctsa时间序列分析工具箱 50 神经科学工具箱Psychtoolbox-3-PTB 51 地震数据处理工具CREWES1990版 52 经济最优化工具箱CompEcon 53 基于约束的重构分析工具箱Cobratoolbox 54 Schwarz-Christoffel Toolbox 55 Gibbs-SeaWater (GSW)海洋学工具箱 56 光声仿真工具箱K-Wave-toolbox-1.2.1 57 语音处理工具箱Sap-Voicebox 58 贝叶斯网工具箱Bayes Net Toolbox(BNT) 59 计算机视觉工具箱VFfeat-0.9.21 60 全向相机校准工具箱OCamCalib_v3.0 61 心理物理学数据分析工具箱Palamedes1_10_3 62 生理学研究工具箱EEGLAB 63 磁共振成像处理工具箱CONN 18b 64 matlab 复杂网络工具箱 65 聚类分析工具箱FuzzyClusteringToolbox 66 遗传规划matlab工具箱 67 粒子群优化工具箱 68 数字图像处理工具箱DIPUM Toolbax V1.1.3 69 遗传算法工具箱 70 鱼群算法工具箱OptimizedAFSAr 71 蚁群算法工具箱 72 matlab优化工具箱 73 数据包络分析工具箱 74 图像分割质量评估工具包 75 相关向量机工具箱 76 音频处理工具箱 77 nurbs工具箱 78 Nurbs-surface工具箱 79 grabit数据提取工具箱 80 量子信息工具箱QLib 81 DYNAMO工具箱 82 NEDC循环的整车油耗量 83 PlotHub工具箱 84 MvCAT_Ver02.01 85 Regularization Tools Version 4.1 86 MatrixVB 4.5(含注册) 87 空间几何工具箱 matGeom-1.2.2 88 大数计算工具箱 VariablePrecisionIntegers 89 晶体织构分析工具包 mtex-5.7.0 90 Minimal Paths 2工具箱 91 Matlab数学建模工具箱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值