32871


godocで実行可能なExampleを表示したくトライしています。  
Exampleの表示までは期待通り出来ているのですが、`Play`ボタンをクリックするとplaygroundの出力に`cannot find
package`というエラーが出ます。

OS: OS X Yosemite 10.10.5  
Go: go1.7.4 darwin/amd64

テストコード  
$GOPATH/src/hoge/hoge_test.go

[code]

    package hoge_test
    
    import (
        "fmt"
        "hoge"
        "testing"
    )
    
    func ExampleHoge() {
        fmt.Println(hoge.Hoge())
    
        // Output:
        // hoge!!
    }
    
[/code]

テストはPASSします

[code]

    $ go test hoge
    ok      hoge    0.011s
    
[/code]

Godoc

[code]

    $ godoc -play -http=:8080
    
[/code]

`http://localhost:8080/pkg/hoge/`でドキュメントも想定通り見られて、Exampleもplayground表示されてました。

しかしplaygroundの`Run`をクリックすると、エラーが起きます。

[code]

    tmp/sandbox389904218/main.go:5:2: cannot find package "hoge" in any of:
    /usr/local/go/src/hoge (from $GOROOT)
    /go/src/hoge (from $GOPATH)
    
[/code]

見つからないと言われている`hoge`パッケージは今回作成したパッケージです。  
今回開発用にGOPATHを設定していますが、上記エラーの`/go`はそのGOPATHに合致していません。

どんな原因が考えられるでしょうか。

### 補足:

エラーの原因は分かりました。godocのplayable
Exampleはplay.golang.orgに処理を委譲(redirect)している様です。つまりエラーメッセージのGOPATHはリモートサーバー上のものでした。

自前パッケージのExample実行方法については未だ不明（そもそも可能なのか？）なので、引き続き質問継続させて下さい。


CC BY-SA 3.0
2016-12-24T03:42:29.957
31349
2017-02-24T17:33:46.113
2017-02-24T17:33:46.113
3054
7282
question
go godoc
標準ライブラリ以外のExampleがgodocでは "cannot find package" となり実行出来ない


私が昔見た頃の godoc はローカルで example が実行出来ていましたが、今コードを見てみると全て play.golang.org
に委託する形になっていますね。おそらく雑なサンプルの意味で example
を書いている人のテストをローカルで実行してマシンが破壊されたみたいな事が起きない様にするための処置だったのかと思います。  
ですので現状の godoc でローカルで example を実行する方法は無いと思います。


CC BY-SA 3.0
2017-02-22T11:55:29.193
32871
2017-02-22T11:55:29.193
440
31349
answer