一尘不染

导入之前我必须先拥有文件没有任何意义

go

如何从头开始导入外部软件包?

我已经在Go中编写了一个库包,并对其进行了测试以通过github进行分发。我正在关注http://golang.org/doc/code.html并使用mac,但收到错误消息

我把下面的命令。

$ mkdir $HOME/go
$ export GOPATH=$HOME/go
$ export PATH=$PATH:$GOPATH/bin
$ mkdir -p $GOPATH/src/github.com/user
$ mkdir $GOPATH/src/github.com/user/project

然后我把

$ go get github.com/user/project

仍然存在go install错误

can't load package: package github.com/golingorg/goling: no Go source files in /Users/user_name/go/src/github.com/user/project

我不明白为什么我们需要文件才能在Go中导入外部包。外部软件包意味着我得到了一些东西,并从外部软件包创建文件。

我的问题是如何从头开始导入外部软件包。大多数文件只是说

 go get github.com/yasushi-saito/fifo_queue

这使我“未设置$ GOPATH”。作为初学者,我为建立“开始工作”的环境而感到沮丧。非常感谢。

摘要

   How do I import an external package from scratch?

阅读 190

收藏
2020-07-02

共1个答案

一尘不染

Go是一种静态类型语言,因此它需要在编译时解析对外部包的任何引用。“ go”工具在本地可访问路径中期望外部软件包的来源,因此您需要使用“ go
get”下载它们。

根据您的描述,您可能没有设置GOPATH。使用ECHO $ GOPATH检查设置是否正确。

对于我的GO项目,我通常使用GOPATH作为工作区,类似于Python中的virtualenv或Ruby中的rbenv / rvm。假设我的项目“
myproject”的根目录为/ projects / myproject,我的源文件位于/ projects / myproject / src /
myproject,并且导入了“ github.com/user/project”,然后

> cd /projects/myproject
> export GOPATH=`pwd`          # or export GOPATH=/projects/myproject
> go get github.com/user/project

执行“ go get”命令后,“
github.com/user/project”的源将下载到/projects/myproject/src/github.com/user/project。

然后,当您使用“ go build”或“ go install”时,它将作为外部软件包位于$ GOPATH / src文件夹中进行编译。

如果在默认文件夹中安装Go,则需要在PATH环境变量中包括Go已安装的bin文件夹。之后,GOPATH是您需要使用“ go”工具的另一个环境变量。

2020-07-02