登录
首页 >  Golang >  Go问答

在全新的 Go 项目中无法导入包

来源:stackoverflow

时间:2024-03-27 13:09:31 313浏览 收藏

在 Go 模块系统中,用包名称命名的文件夹必须包含至少一个 .go 文件。本文描述了一个问题,其中将包文件移动到一个具有包名称的文件夹后,无法导入包。解决方案是将文件移动回包含源文件的目录或在主模块目录中添加另一个带有包名称的 .go 文件以导入其他文件。

问题内容

我正在尝试 go 中的模块。我在 gopath 之外并使用版本 1.12.6

gobin="/home/x80486/workshop/go/bin/"
gopath="/home/x80486/workshop/go/"
goroot="/home/x80486/.asdf/installs/golang/1.12.6/go/"

我创建了一个新项目并将其初始化为内部模块:/home/x80486/workshop/development/gauge-basics。然后,我创建了一个包含以下内容的文件 example_spec.go

package stepimpl

import (
  "github.com/getgauge-contrib/gauge-go/gauge"
)

var _ = gauge.step("run me before any other", func() {})

...我运行了 go test

[x80486@uplink gauge-basics]$ go test
go: finding github.com/getgauge-contrib/gauge-go/gauge latest
go: finding github.com/getgauge/common latest
go: finding github.com/golang/protobuf/proto latest
go: finding github.com/dmotylev/goproperties latest
?       github.com/x80486/gauge-basics  [no test files]

一切都很好,但是一旦我将此文件移动到名为 stepimpl 的文件夹中,就没有任何效果:

[x80486@uplink gauge-basics]$ go build
can't load package: package github.com/x80486/gauge-basics: unknown import path "github.com/x80486/gauge-basics": cannot find module providing package github.com/x80486/gauge-basics

我不明白为什么将文件移动到具有包名称的文件夹会破坏项目。

这是生成的 go.mod 文件:

module github.com/x80486/gauge-basics

go 1.12

require (
    github.com/dmotylev/goproperties v0.0.0-20140630191356-7cbffbaada47 // indirect
    github.com/getgauge-contrib/gauge-go v0.1.3 // indirect
    github.com/getgauge/common v0.0.0-20190514095629-619e107433ce // indirect
    github.com/golang/protobuf v1.3.2 // indirect
)

解决方案


github.com/x80486/gauge-basics 下没有 .go 文件,因为您将它们移到了不同​​的目录下。您可以在包含源文件的目录下运行 go build 或在 gauge-basics 目录中添加另一个 .go 来导入它们。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>