在Windows 10 Go v1.12.5上不允许使用内部软件包

时间:2019-05-21 15:05:55

标签: windows go

昨天,我帮助同事在他的Windows 10 PC上进行安装。我们从golang.org下载并安装了最新版本(v1.12.5)。安装期间未报告任何错误。尝试获取并构建我们正在合作的私人项目时遇到了问题。

第一个问题是尝试使用go get将项目提取到go / src树中。它提示输入他的GitHub密码,并且似乎正在下载,但因抱怨该项目不包含Go文件而失败。因此,我们直接在C:\ go \ src下克隆了该项目。那成功了,但是尝试构建会产生关于“不允许使用内部软件包”的抱怨。

此错误消息在SO上有多个先前报告(例如golang disable "use of internal package not allowed"),在golang / go中也存在问题(例如https://github.com/golang/go/issues/26446),但是大多数讨论都将问题解释为与尝试从具有项目根外部的存储库的包内部导入。 情况并非如此。

该项目是纯Go语言,仓库中的所有代码都可以在OS-X和Linux上成功构建。

由于上述原因,我认为这个问题并非重复。

作为参考,这是安装在go / src树下的项目目录的缩小视图,显示了尝试运行go build时产生错误的文件之一。在这种情况下,投诉将内部/ ace /程序包引用为不允许的导入,但该问题还发生在从其他内部程序包(也未显示)中导入的其他子目录(未显示)中。

go
└── src
    ├── github.com
    │   ├── Michael-F-Ellis
    │   │   ├── pgcgo
    │   │   │   ├── internal
    │   │   │   │   ├── ace
    │   │   │   ├── setacertc
    │   │   │   ├   ├── main.go

这是setacertc / main.go的概述:

// setacertc is intended to be run from an internet-connected host to
// set the real-time-clock on the ACE11.
package main

import (
    "fmt"
    "log"
    "math/rand"
    "time"

    "github.com/Michael-F-Ellis/pgcgo/internal/ace"
)

func main() {
    // SNIP
}

我怀疑问题是某种程度上特定于Windows下的新安装和/或运行Go的。任何帮助表示赞赏。

0 个答案:

没有答案