当前位置: 首页 > 面试题库 >

Golang:安装目录错误?

尉迟鑫鹏
2023-03-14
问题内容

我有错误:

go install: no install location for directory /Users/xwilly/Dropbox/go/project/src outside GOPATH

我在OS X上使用go版本1.1。

我可以构建并运行,但无法安装软件包。

我的环境:

GOPATH=/Users/xwilly/Dropbox/go/project
PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:/Users/xwilly/Dropbox/go/project/bin

项目树:

/Users/xwilly/Dropbox/go/project
bin
pkg
src

我可以没有错误地构建:

..:src xwilly$ go build test.go 
..:src xwilly$ go install test.go
go install: no install location for directory /Users/xwilly/Dropbox/go/project/src outside GOPATH

这是一个简单的示例:

xwilly$ cat test.go 
package main

import (
    "fmt"
)

func main() {
    fmt.Println("Bonjour")
}
xwilly$ go run test.go 
Bonjour
xwilly$ go install test.go 
go install: no install location for directory /Users/xwilly/Dropbox/go/project/src/learning outside GOPATH

问题答案:

命令去

GOPATH环境变量

列出的每个目录GOPATH必须具有规定的结构:

src/目录包含源代码。“ src” 下面的路径确定导入路径或可执行文件名称。

pkg/目录包含已安装的软件包对象。就像在Go树中一样,每个目标操作系统和体系结构对都有其自己的子目录pkgpkg/GOOS_GOARCH)。

如果DIR是中列出的目录,则GOPATH可以将源为DIR / src / foo / bar的软件包导入为“
foo/bar”,并将其编译形式安装为“ DIR/pkg/GOOS_GOARCH/foo/bar.a”。

bin/目录包含已编译的命令。每个命令都以其源目录命名,但仅以最后一个元素命名,而不是整个路径。即,源为in的命令DIR/src/foo/quux安装在DIR
/ bin /
quux中,而不是DIR/bin/foo/quux。将foo/被剥离,以便您可以添加DIR/bin到您PATH得到在安装命令。如果GOBIN设置了
环境变量,那么命令将安装到它命名的目录中,而不是安装在DIR/bin

这是示例目录布局:

GOPATH=/home/user/gocode

/home/user/gocode/
    src/
        foo/
            bar/               (go code in package bar)
                x.go
            quux/              (go code in package main)
                y.go
    bin/
        quux                   (installed command)
    pkg/
        linux_amd64/
            foo/
                bar.a          (installed package object)

您的目录结构错误。您正在尝试安装命令(package main)。它应该位于以您的命令命名的源目录中。请参阅quux上面的命令。

就您而言,假设您的命令将被命名为billy

$ mkdir -p /Users/xwilly/Dropbox/go/project/src/billy

在你的里面GOPATH。将test.go文件移到该目录。跑

$ go install billy

billy除非已设置,否则该命令应GOBIN安装在

/Users/xwilly/Dropbox/go/project/bin

您的目录GOPATH,该目录应该在您的目录中PATH



 类似资料:
  • java-home 变量占位符的使用是为了引用 Java Runtime Environment (JRE,Java运行时环境) 的安装目录。这个目录的确认是基于有或没有安装 JDK 的 JSSE 的运行来判断的。JDK 包括 JRE,但位于不同的文件层次结构中。 java-home 的默认位置如下表: 操作系统 JDK JRE Solaris/Linux ~/jdk1.8.0/jre ~/jre

  • 问题内容: 我只是按照golang(ubuntu 16)的安装指南进行操作。我在/ etc / usr中解压缩了档案,在/home/user/.profile中添加了env变量,我刚刚测试了基于hello world代码的基本go构建。 我收到以下错误: 为什么它要求我再次安装它? 问题答案: 二进制文件的位置不在您的路径中。Ubuntu找不到它,建议安装它。将此行添加到您的文件中,或者更好: 在

  • 问题内容: 我在Windows 7计算机上安装了python 3.5,该计算机没有任何其他python版本。 pip随附python 3.5安装。 我用pip安装库 它在以下位置安装了库: 但是像pycharm这样的IDE会出现在: 那是应该安装它的地方。 因此,IDE无法识别该库,因此我无法在IDE中获得任何帮助。 解决方法是将库复制到所需的文件夹中,并且可以正常工作,但是我想知道如何配置pip

  • 我试图通过PIP安装此软件包。它给我以下错误: 我觉得这很奇怪,因为相关的没有提到任何变量,只提到。 发生了什么?你能帮我吗? 以下是的完整输出:

  • 只是按照facebook.github上的说明进行create-react-native-app首先得到的:react-redux 5.0.6需要react@^0.14.0 || react@^15.0.0-0的对等体....然后我卸载了react-redux,得到了这个... 这里是包.json 错误启动包装机 错误:未安装React native。请在您的项目目录中运行npm install。

  • 你的 Go 安装目录($GOROOT)的文件夹结构应该如下所示: README.md, AUTHORS, CONTRIBUTORS, LICENSE /bin:包含可执行文件,如:编译器,Go 工具 /doc:包含示例程序,代码工具,本地文档等 /lib:包含文档模版 /misc:包含与支持 Go 编辑器有关的配置文件以及 cgo 的示例 /os_arch:包含标准库的包的对象文件(.a) /sr