3 回答
TA贡献1847条经验 获得超7个赞
我知道三种方法:
方法一(最好的方法):
# Inside
# Ch2-GOMS
# │ ├── go.mod
# │ ├── handlers
# │ │ └── hello.go
# │ └── main.go
# In Ch2-GOMS
go mod init github.com/AP/Ch2-GOMS
# In main.go
# Add import "github.com/AP/Ch2-GOMS/handlers"
# But, make sure:
# handlers/hello.go has a package name "package handlers"
您一定做错了什么,这就是它不起作用的原因。
方法2(好方法):
# Inside
# Ch2-GOMS
# │ ├── go.mod
# │ ├── handlers
# │ │ └── hello.go
# │ └── main.go
# Inside the handlers package
cd Ch2-GOMS/handlers
go mod init github.com/AP/Ch2-GOMS/handlers # Generates go.mod
go build # Updates go.mod and go.sum
# Change directory to top-level (Ch2-GOMS)
cd ..
go mod init github.com/AP/Ch2-GOMS # Skip if already done
go build # Must fail for github.com/AP/Ch2-GOMS/handlers
vi go.mod
在 Ch2-GOMS/go.mod 内添加以下行:
# Open go.mod for editing and add the below line at the bottom (Not inside require)
replace github.com/AP/Ch2-GOMS/handlers => ./handlers
# replace asks to replace the mentioned package with the path that you mentioned
# so it won't further look packages elsewhere and would look inside that's handlers package located there itself
方法3(对于不耐烦的人来说非常快速的破解方法):
关闭 Go 模块GO111MODULE=off
删除go.mod文件
# Check: echo $GOPATH
# If $GOPATH is set
mkdir -p $GOPATH/src/github.com/AP/Ch2-GOMS
cd $GOPATH/src/github.com/AP/Ch2-GOMS
# If $GOPATH is unset
mkdir -p ~/go/src/github.com/AP/Ch2-GOMS
cd ~/go/src/github.com/AP/Ch2-GOMS
# Now create a symbolic link
ln -s <full path to your package> handlers
原因:在构建过程中,编译器首先查找供应商,然后查找 GOPATH,然后查找 GOROOT。因此,由于符号链接,VSCode 的 go 相关工具也将由于提供的符号链接而正常工作,因为它依赖于 GOPATH(它们在 GOPATH 之外无法工作)
TA贡献1825条经验 获得超4个赞
如果要导入本地模块,则需要映射模块路径,以便它可以在本地文件系统中找到代码。
首先使用 go mod edit 命令将模块的任何导入替换为本地文件
$ go mod edit -replace example.com/greetings=../greetings
该命令指定 example.com/greetings 应替换为 ../greetings 以定位依赖项。运行命令后,当前目录中的 go.mod 文件应在其 mod 文件中包含替换指令
之后使用 go mod tidy 命令来同步依赖项,添加您导入但尚未被当前模块跟踪的代码所需的依赖项
$ go mod tidy
TA贡献1780条经验 获得超3个赞
以下是步骤-
on main folder - go mod init
2.go mod tidy
3.go to the folder where main file is present
4.install the package via
go get <package name>
5.go build
在上述步骤之前,您的项目路径应该是
project path = GOPATH/src/<project_name>
另外应该还有 2 个与src文件夹平行的文件夹
源代码
包装
垃圾桶
当你安装任何软件包时,它应该进入 pkg 文件夹,并且在执行 go mod tidy 后应该生成一个文件
go.mod
项目清单
- 3 回答
- 0 关注
- 178 浏览
添加回答
举报