如何从头开始导入外部软件包?
我已经在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?
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”工具的另一个环境变量。