英文:
Trouble with using gorilla/mux package in mac
问题
我正在尝试学习如何使用Go和mux构建一个Web服务器。我在main.go文件中导入mux,代码如下:import github.com/gorilla/mux
。然而,当我尝试运行代码时,出现以下错误:
未找到所需的模块,无法提供github.com/gorilla/mux包:在当前目录或任何父目录中找不到go.mod文件;请参阅'go help modules'
我的GOPATH是/Users/michiokaku/Study/go
。
我的目录结构如下:
go___
pkg
bin
my_codes___
main.go
在pkg目录中,我发现了一个名为mux@v1.8.0的目录,路径为pkg/mod/github.com/gorilla
。我认为这就是我使用go get -u github.com/gorilla/mux
下载的内容。但是当代码运行时,我遇到了错误。
问题出在哪里?我该如何解决?
PS:我使用的是Mac系统。
英文:
I am trying to learn how to build a webserver using go and mux. I am importing mux to the main.go file as import github.com/gorilla/mux
. However, when I am trying to run the code. I get the following error
no required module provides package github.com/gorilla/mux: go.mod file not found in current directory or any parent directory; see 'go help modules'
My GOPATH is /Users/michiokaku/Study/go
The overall structure of my directories is
go___
pkg
bin
my_codes___
main.go
Inside pkg, I found a directory named mux@v1.8.0 in the path pkg/mod/github.com/gorilla
. I think this is what I downloaded using go get -u github.com/gorilla/mux
. But when the code is running, I am getting errors.
What is the issue here? How do I solve this?
PS: I am using mac.
答案1
得分: 2
阅读教程:Go入门,如果你还没有看过的话。它与你的情况非常相似。
简而言之:
- 运行
go mod init example.com/projectname
,将最后一个参数替换为你的模块名称。这将在当前目录中创建一个go.mod
文件,用于跟踪你的依赖关系。你的模块名称将成为你的模块中所有包的前缀。 - 运行
go mod tidy
或go get github.com/gorilla/mux
,将github.com/gorilla/mux
添加为依赖项。
你提到你之前看到了一个pkg/mod/github.com/gorilla
目录。这是Go的模块缓存,被所有项目共享。
英文:
Read through Tutorial: Getting Started with Go, if you haven't seen it already. It matches your situation pretty closely.
In short:
- Run
go mod init example.com/projectname
, replacing the last argument with the name for your module. This will create ago.mod
file in the current directory that will track your dependencies. Your module's name will be a prefix for all packages within your module. - Run
go mod tidy
orgo get github.com/gorilla/mux
to addgithub.com/gorilla/mux
as a dependency.
You mentioned you saw a directory pkg/mod/github.com/gorilla
earlier. This is part of Go's module cache, shared by all projects.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论