【问题标题】:Any smart method to get exp/html back after Go1?Go1 后有什么聪明的方法可以恢复 exp/html?
【发布时间】:2012-04-16 16:44:46
【问题描述】:

我已经以 root 身份安装了 Go 发行版。 Go1 删除了所有 exp/ 代码。

有没有聪明的方法在 Go1 之后取回 exp/* ? (我的意思是如何安装在我本地的 GOPATH 中?)

[我的解决方案]

# pull from go repository to $HOME/repo/go
cd $HOME/repo
hg clone https://go.googlecode.com/hg/go
# make symbolic link to your GOPATH(eg. $HOME/go)
cd $HOME/go/src
ln -s $HOME/repo/go/src/pkg/exp .

【问题讨论】:

标签: go


【解决方案1】:

exp/html 库不完整,这就是 Go1 将其删除的原因。

但如果你真的想使用它,那么

go get code.google.com/p/go/src/pkg/exp/html

可以为您重新安装。如果您想要一个稍微更完整的 html 解析器,那么您可以查看 http://code.google.com/p/go-html-transform/,它还有一个 html5 解析器以及一个基于 css 选择器的抓取和转换库。

编辑:显然试图以这种方式获取包裹并没有真正奏效。似乎安装它的唯一方法是检查 go 源代码,然后从源代码安装。如果您想走这条路,这实际上是一个非常快速且无痛的过程。

【讨论】:

  • go get code.google.com/p/go/src/pkg/exp/html 收到错误消息为:package code.google.com/p/go/src/pkg/exp/html imports code.google.com/p/go/src/pkg/exp /html 导入 code.google.com/p/go/src/pkg/exp/html: import code.google.com/p/go/src/pkg/exp/html": 找不到包
  • 你能在 go-html-transform 的主站点上添加一些文档吗?特别的示例代码以及如何“去拿你的包裹”。
  • 呃,我自己并没有真正尝试过以这种方式获取 exp/html。这太糟糕了。我会看到在它的项目页面中添加更多关于 html 转换的文档。
  • 仅供参考:exp/html 的作者几乎准备好发布一个完整的版本,所以这可能很快就会变得容易很多。
【解决方案2】:

Building from source 是这样做的方法。但是,当您执行 hg update 步骤时,请注意,由于 exp 树未标记为 go1,因此 hg update release 不会为您获取它。相反,hg update weekly 会得到它,并且可能是您想要的。

编辑:在 Go 1 之后每周发布已停止,因此hg update weekly 将访问越来越陈旧的代码。更好的策略是hg update tip,然后将 exp 目录或感兴趣的目录复制到某处并使用您使用的任何 Go 版本重新编译它,例如 Go 1.0.1。

【讨论】:

    【解决方案3】:

    这个答案已经过时了。

    这在 golang wiki 中有介绍:

    https://code.google.com/p/go-wiki/wiki/InstallingExp

    % cd $GOPATH/src
    % hg clone https://code.google.com/p/go go-exp
    requesting all changes
    adding changesets
    adding manifests
    adding file changes
    added 13323 changesets with 50185 changes to 7251 files (+5 heads)
    updating to branch default
    3464 files updated, 0 files merged, 0 files removed, 0 files unresolved
    % mv go-exp/src/pkg/exp .
    % rm -rf go-exp
    % go install exp/...
    

    然后,使用它:

    import "exp/proxy"
    

    几个月前我试过了,效果很好。此外,当我运行 go install ... 时,我将其限制为仅我感兴趣的包:go install exp/html(如果我没记错的话)。

    【讨论】:

    • 答案已更改,因为我认为这可能是官方方法。
    【解决方案4】:

    exp 包现在已移至不同的存储库,以使其更易于安装。现在你可以使用 go get "golang.org/x/net/html" 安装以前的 exp/html。

    【讨论】:

      【解决方案5】:

      注意:使用 go 1.4(2014 年第四季度),the url for that exp package will change (again)

      code.google.com/p/go.exp => golang.org/x/exp
      

      这意味着现在:

      go get golang.org/x/exp
      

      见“Go 1.4 subrepo renaming”。

      关于html 包,它在net/html 中,所以这将变成(由andybalholm 评论):

      go get golang.org/x/net/html
      

      【讨论】:

      • html包现在在net中,不是exp。
      猜你喜欢
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 2012-02-22
      相关资源
      最近更新 更多