go中import包的大坑解决方案
作者:剑神卓不凡 发布时间:2024-05-09 09:55:14
最近开始使用Go/GoLand 在import 自定义包时出现各种状况,措手不及,大概在网上找了解决方法,几乎没说的清楚的(可能是我个人理解力比较差哈哈)
个人喜好加上网上其他人给的解决方法实在是那个啥,所以 图文方式解决问题 才能事半功倍。
windows环境下装的Goland,Mac及其他linux系统参考,了解到本质后 万变不离其宗。
方案一:使用GOROOT和GOPATH
(以我本机为准举例讲讲各种方法)
GOROOT:就是Go的安装目录(C:\Go),(类似于java的JDK),里面有bin目录(C:\Go\bin)
GOPATH: 是我们的工作空间,保存go项目代码和第三方依赖包 (F:\Go)
GOPATH可以设置多个,其中,第一个将会是默认的包目录,使用go get下载的包都会在第一个path中的src目录 下,使用go install时,在哪个GOPATH中找到了这个包,就会在哪个GOPATH下的bin目录生成可执行文件
使用GOPATH时,Go会在以下为目录中搜索包:
GOROOT/src:Go标准库
GOPATH/src:应用自身代码和第三方依赖的代码
该方法对目录架构要求比较严格 例如我的 F:\Go\src\awesomeProject1, 即必须创建在 GOPATH/src
注意说明:sum1包内的函数要大写,这种方式是严格按照 GOROOT和GOPATH的方式,例如main包import "awesomeProject1/sum1"
包就会在 $GOPATH/src(Go/src/awesomeProject1/sum1)路径下找到。
方案二:使用go.mod
通常大家不喜欢将代码放在 $GOPATH/src 下面,此时import pkg 时,就要用到go.mod
从Go1.11版本之后,已经不再推荐使用GOPATH来构建应用了。也就是说GOPATH被认为时废弃的垃圾的做法。
当你开启了GO111MODULE=on,仍然使用GOPATH模式的方法,在引入自定义模块时会报错。
用Go modules创建出来的工程中会包含一个go.mod的文件,工程的位置/路径随便
1. 设置环境变量 go env -w GO111MODULE=on
2. 打上这个小 对勾。
3. 执行 go mod init <module name> 。 <module name>非必填,不填的话就会采用项目文件的名称。
来源:https://blog.csdn.net/u012919476/article/details/110942353
猜你喜欢
- SQL Server与Oracle、DB2的优劣对比:1.开放性:SQL Server只能在Windows上运行,没有丝毫的开放性,操作系统
- 概述:最近在赶毕业设计,遇到一个问题,爬虫模块我用PyQt5写了图形界面,为了将所有的输出信息都显示到图形界面上遇到了问题。先演示一下效果最
- 平时我们写个脚本,要放到后台执行去,我们怎么做呢?nohup python example.py 2>&1 /dev/null
- 总体跟官方样例相似,但是官方样例因为部分代码有误无法运行,同时需要了解json,以及前后端知识需要一些时间,因此供大家参考。这个是views
- 1.交换变量x = 6y = 5x, y = y, xprint x>>> 5print y>>> 62
- iterrows(),iteritems(),itertuples()区别Python函数之iterrows, iteritems, ite
- 虚继承 的概念的提出主要是为了解决C++多继承的问题,举个最简单的例子:class animal{ &nb
- 目录1. 最直观的相加2. 借助 itertools3. 使用 * 解包4. 使用 extend5. 使用列表推导式6. 使用 heapq7
- 本文用 Python 实现 PS 滤镜中的 USM 锐化效果import matplotlib.pyplot as pltfrom skim
- mysql查询的控制语句字段去重**关键字:distinct**语法:select distinct 字段名 &nb
- 由于工作需要,在做最优分箱的时候,始终写不出来高效的代码,所以就找到了R语言中的最优分箱的包,这个时候考虑到了在python中调用R语言,完
- 前言我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数。在写一些系统脚本或者自动化
- 前言本文主要给大家介绍了关于linux/mac安装mysql忘记密码的相关解决办法,分享出来供大家参考借鉴,下面话不多说了,来一起看看详细的
- 页面中无法看见页面,指向的连接网页无法显示 解决方法:1、首先在Dreamweaver中不能中文作为文件名。连目录名也最好是英文的。2、如果
- 首先如果柱状图中有中文,比如X轴和Y轴标签需要写中文,解决中文无法识别和乱码的情况,加下面这行代码就可以解决了:plt.rcParams[&
- 我想做一个页面,10秒后转向其它页。想在网页中显示10秒的倒计时。谢谢了。对JS不懂 方法一:<html><h
- 如果不清楚字符串的编码格式的话,就可以将这段字符这样检查:$encode = mb_detect_encoding($string, arr
- 一、编写Python脚本[root@lidabai ~]# vim harbor_clearimage.py# -*- coding:utf
- 本文为大家分享了python+flask实现API的具体方法,供大家参考,具体内容如下Flask 框架#-*-coding:utf-8-*-
- 本文实例讲述了Python反转序列的方法。分享给大家供大家参考,具体如下:序列是python中最基本的数据结构,序列中每个元素都有一个跟位置