我有一个想法,我想对数据库/ sql go包进行一些小的添加。我想尝试我的更改,看看它是如何工作的。
我以为我能够执行此命令来获取我可以使用的数据库/ sql中的源代码副本:
go get github.com/golang/go/tree/master/src/database/sql
然后,我将从
更改我的import语句import "database/sql"
到
import "github.com/golang/go/tree/master/src/database/sql"
并将调试Printf放在我的本地代码副本中,以确认我刚刚执行的新代码正在执行而不是/ usr / local / go中的代码。
当我尝试上面的“go get”命令时,我收到以下错误消息:
$ go get github.com/golang/go/tree/master/src/database/sql
package github.com/golang/go/tree/master/src/database/sql: cannot find package "github.com/golang/go/tree/master/src/database/sql" in any of:
/usr/local/go/src/github.com/golang/go/tree/master/src/database/sql (from $GOROOT)
/Users/me/go/src/github.com/golang/go/tree/master/src/database/sql (from $GOPATH)
$ echo $GOPATH
/Users/me/go
$
为什么这不起作用?
我也尝试使用
中的源代码执行此操作https://go.googlesource.com/go/+/release-branch.go1.6/src/database/sql
这也不起作用。然后我尝试从上面的链接下载源代码的tgz,并在我自己的$ GOPATH / src / github.com / database / sql文件夹中解压缩这些文件,然后在那里构建它们。这产生了一个运行的sql.a,但没有用。
答案 0 :(得分:5)
您可以从源代码构建Go,然后在适当的位置修改标准库,也可以提供该特定包。
如果您已从源代码安装Go,则在编辑该软件包后,您可以像使用go install database/sql
如果将database/sql
包复制到vendor
目录中,则将构建并导入该副本以代替标准库中的版本。
答案 1 :(得分:0)
正如戈多克所说
get download and install packages and dependencies
您可以获得包和依赖项。但是你想要一个文件夹!您可以从github下载其zip文件并将其复制到该目的地。如果要查看错误,可以使用错误类型。
例如sql.Open返回* sql.DB,错误
db, err := sql.Open("mysql", "astaxie:astaxie@/test?charset=utf8")
if err != nil {
fmt.Println(err)
}