kubernetes 无法在以下任何位置找到软件包“k8s.io/metrics/pkg/client/clientset/versioned“:供应商,GOROOT,GOPATH [已关闭]

bkkx9g8r  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(1)|浏览(397)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。

这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
12天前关闭。
Improve this question
我尝试创建i调度器,所以在编写代码和创建部署后,我使用make文件来构建并使用vendor,但当我使用我的第一个代码时,它使用与github reposetory中的代码相同的导入,但当我添加到它并使用k8s.io/metrics/pkg/client/clientset/versioned作为导入时,它给予我一个错误:

cmd/scheduler/main.go:24:5: cannot find package "k8s.io/metrics/pkg/client/clientset/versioned" in any of:
    /go/src/github.com/username/scheduler/vendor/k8s.io/metrics/pkg/client/clientset/versioned (vendor tree)
    /usr/local/go/src/k8s.io/metrics/pkg/client/clientset/versioned (from $GOROOT)
    /go/src/k8s.io/metrics/pkg/client/clientset/versioned (from $GOPATH)

生成文件:

SHELL = /bin/bash
    OS = $(shell uname -s)
    PACKAGE = github.com/username/scheduler
    BINARY_NAME = scheduler
    IMAGE = name
    TAG = tagsvalue

    BUILD_DIR ?= build
    BUILD_PACKAGE = ${PACKAGE}/cmd/scheduler
    DEP_VERSION = 0.5.0
    GOLANG_VERSION = 1.11

    .PHONY: clean
    clean: ## Clean the working area and the project
           rm -rf bin/ ${BUILD_DIR}/ vendor/
           rm -rf ${BINARY_NAME}

    bin/dep: bin/dep-${DEP_VERSION}
           @ln -sf dep-${DEP_VERSION} bin/dep
   bin/dep-${DEP_VERSION}:
            @mkdir -p bin
            curl https://raw.githubusercontent.com/golang/dep/master/install.sh |   INSTALL_DIRECTORY=bin DEP_RELEASE_TAG=v${DEP_VERSION} sh
            @mv bin/dep $@

    .PHONY: vendor
    vendor: bin/dep ## Install dependencies
           bin/dep ensure -v -vendor-only

    .PHONY: build
    build: ## Build a binary
            go build ${BUILD_PACKAGE}

请帮助我知道这个问题是不清楚,但我是一个新的golang所以任何信息都会有帮助。谢谢

mqkwyuun

mqkwyuun1#

好吧,既然你想知道如何使用go模块,我就写一个简短的总结。完整的文档在www.example.com网站上的herego.dev中。它很容易找到,并从头到尾引导你完成整个过程。
从go 1.4开始,我就一直使用go作为我的主要语言。自从引入go模块以来,我可以诚实地说,我很少需要Makefile。使用模块非常简单:

$ cd ~
$ mkdir new_project
& cd new_project

# initialise module

$ go mod init github.com/user/new_project
$ ls
go.mod
$ cat go.mod
module github.com/user/new_project

go 1.19

# the version in the mod file will reflect the version of go you have installed locally

现在添加依赖项:

$ go get github.com/jinzhu/copier

# check:

$ ls
go.mod    go.sum
$ cat go.mod
module github.com/user/new_project

go 1.19

require github.com/jinzhu/copier v0.3.5 // indirect

添加了依赖项,并创建了一个go.sum文件。它作为依赖项的锁文件。它基本上是项目中使用的确切版本的提交哈希。
你可以指定一个特定的版本(看到了我们想要的版本v0.3.2而不是0.3.5),你可以只使用下面的命令:

$ go get github.com/jinzhu/copier@v0.3.2

或者,您可以在编辑器中手动将依赖项添加到mod文件中:

module github.com/user/new_project

go 1.19

require (
   github.com/jinzhu/copier v0.3.2
   github.com/foo/bar
)

等等。检查文档中的replacerequire_test之类的内容,以及它们的作用。
现在您可以编译您的代码:

$ go build .

系统将自动检查并更新/下载任何尚未下载的依赖项。如果要手动下载依赖项,您可以:

$ go mod download

如果你想删除不再使用的依赖项(即清理go.sum文件):

$ go mod tidy

没什么大不了的,真的。

相关问题