Go:即使供应商树中存在私有包,也无法在任何供应商树、$GOROOT 或 $GOPATH 中找到包

这是我的项目结构:

http://img3.mukewang.com/63f484590001462f02830556.jpg

这是我的模组文件:


module github.com/bloodcompany/blood-microservices/stores/sync-stores-google-sheet-to-firestore


go 1.16


require (

    cloud.google.com/go/firestore v1.6.1 // indirect

    cloud.google.com/go/kms v1.4.0 // indirect

    github.com/bloodcompany/blood-microservices/utils v1.0.0

)


replace (

    github.com/bloodcompany/blood-microservices/models => ../../models

    github.com/bloodcompany/blood-microservices/utils => ../../utils

)

这是我在“function.go”文件中的导入:


import (

    "github.com/bloodcompany/blood-microservices/utils"

)

问题: 当我将函数部署到服务器时,终端出现以下错误。你可以在我的项目结构中看到,错误中似乎缺少的包在 Vendor Tree 下已经可用。但错误仍然出现。可能出了什么问题?


ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Build failed: src/stores/function.go:9:2: cannot find package "github.com/bloodcompany/blood-microservices/utils" in any of:

        /workspace/src/stores/vendor/github.com/bloodcompany/blood-microservices/utils (vendor tree)

        /layers/google.go.runtime/go/src/github.com/bloodcompany/blood-microservices/utils (from $GOROOT)

        /workspace/src/github.com/bloodcompany/blood-microservices/utils (from $GOPATH); Error ID: 2f5e35a0

注意: 我的项目不在$GOPATH这个位置。这是一个问题吗?$GOPATH 位置是“C:\Users\thisa\go”,而项目在另一个位置。



慕娘9325324
浏览 76回答 1
1回答

噜噜哒

这里有两个可能的问题:缺少 go.mod根据文档,您的目的地需要有一个go.mod文件。如果箭头右侧的路径是绝对路径或相对路径(以./或../开头),则解释为替换模块根目录的本地文件路径,其中必须包含一个go.mod文件. 在这种情况下必须省略替换版本。文件不存在看起来您正在引用项目根目录之外的文件。这些文件是否被下载到它们被部署到的任何地方?如果下载了,问题可能是上面那个。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go