为什么识别不到自定义包

mypackage包内容

img


moduledemo

img


结构如下

img

img

img


本地已经有gin包了,但是每个项目都要go get才能用

详细一点

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    1. 确保你的自定义包的目录结构正确。在Go语言中,包的目录结构必须按照一定规范组织。每个包应该包含一个名为main的目录(这个目录名是可选的),以及一个或多个.go文件。在你的项目目录中,你的自定义包应该位于与main目录同级的一个目录中。

    示例目录结构:

    - your-project/
        - main/
        - your-package/
            - your-package.go
        - main.go
    
    1. 确保在自定义包中的.go文件中声明了正确的包名。在每个.go文件中,你都需要在文件的开头使用package关键字来声明包名。包名应该与包的目录名一致。

    示例代码:

    package your-package
    
    // Your code here
    
    1. 确保你正确安装了你的自定义包。在你的项目中,使用go get命令只是临时获取该包的副本以供当前项目使用。如果你想将该包添加到全局可用的包列表中,你应该在你的项目目录之外的任何位置使用go get命令来安装该包。

    示例命令:

    go get github.com/gin-gonic/gin
    
    1. 确保你的GOPATHGOROOT环境变量正确设置。GOPATH应该指向你的工作空间目录,而GOROOT应该指向你安装Go的目录。在命令行中输入go env可以查看当前环境变量的值。

    示例命令和输出:

    $ go env
    GOPATH="/path/to/your/gopath"
    GOROOT="/path/to/your/goroot"
    
    1. 在你的项目中正确引用你的自定义包。在你要使用自定义包的代码文件中,使用import语句来引入你的包。引入包的路径应该是从GOPATHsrc目录开始的相对路径。

    举例来说,如果你的自定义包位于/path/to/your/gopath/src/github.com/user/your-package目录下,你的引入路径应该是import "github.com/user/your-package"

    示例代码:

    package main
    
    import "github.com/user/your-package"
    
    func main() {
        // Your code here
    }
    

    如果你已经按照以上步骤操作,并且仍然无法识别到自定义包,可能是其他问题导致的。你可以尝试以下方法来排查问题:

    • 使用go mod init命令初始化你的项目(如果你使用了Go Modules)。
    • 检查你的自定义包是否成功安装到了GOPATHpkg目录中。
    • 确保你的项目目录结构没有任何错误,文件没有拼写错误等。
    • 尝试在一个干净的环境中运行你的项目,以排除其他配置和依赖的干扰。

    如果你仍然不能解决问题,请提供你项目的目录结构和代码截图,以便更好地帮助你诊断和解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^