2013-06-03 20 views
9

tôi làm như viết một hướng dẫn Golang http://golang.org/doc/code.html#remotegói code.google.com/p/go.example/hello: exec: "hg": không thể tìm thấy tệp thi hành trong% PATH%. Làm thế nào để có được gói golang từ xa?

thiết lập env của tôi:

C:\sbox\go\example>set go 
    GOPATH=C:\sbox\go\example 
    GOROOT=C:\Go 

Thư mục example/ chỉ có src/ thư mục:

C:\sbox\go\example\ 
      | 
      --src\ 

Bây giờ tôi gọi go get như mô tả và nhận được một lỗi:

C:\sbox\go\example>go get code.google.com/p/go.example/hello 
# cd .; hg clone -U https://code.google.com/p/go.example C:\sbox\go\example\src\code.google.com\p\go.example 
package code.google.com/p/go.example/hello: exec: "hg": executable file not found in %PATH% 

Sau khi gọi go get, tuy nhiên, thư mục example/ của tôi trở nên như thế này:

C:\sbox\go\example\ 
      | 
      --src\ 
       | 
       code.google.com\ 
         | 
         --p\ 

Và đó là tất cả. Không có gì được cài đặt thêm.

Sau đó, tôi thêm một mã số để cấu trúc thư mục của tôi và nó trở nên như thế này:

C:\sbox\go\example\ 
      | 
      --src\ 
       | 
       ---code.google.com\ 
       |  | 
       |  --p\ 
       | 
       ---github.com\ 
         | 
         --user\ 
          | 
          --hello\ 
          | | 
          | --hello.go 
          | 
          --newmath\ 
           | 
           --sqrt.go 

hello.go là như thế này:

package main 

import (
    "fmt" 
    "github.com/user/newmath" 
    //"code.google.com/p/go.example/newmath" 
) 

func main() { 
    fmt.Printf("Hello, world. Sqrt(2) = %v\n", newmath.Sqrt(2)) 
} 

sqrt.go là như thế này:

// Package newmath is a trivial example package. 
package newmath 

// Sqrt returns an approximation to the square root of x. 
func Sqrt(x float64) float64 { 
    z := 0.0 
    for i := 0; i < 1000; i++ { 
     z -= (z*z - x)/(2 * x) 
    } 
    return z 
} 

Tôi chỉ đối phó/dán chúng. Tất cả như được viết trong hướng dẫn. Sau đó, tôi làm go install và chạy dự án. Tất cả hoạt động tốt:

C:\sbox\go\example\src\github.com\user\hello>go install 

C:\sbox\go\example\bin>hello 
Hello, world. Sqrt(2) = 1.414213562373095 

Bây giờ tôi lại chạy go get và nhận được lỗi tương tự:

C:\sbox\go\example>go get code.google.com/p/go.example/hello 
# cd .; hg clone -U https://code.google.com/p/go.example C:\sbox\go\example\src\code.google.com\p\go.example 
package code.google.com/p/go.example/hello: exec: "hg": executable file not found in %PATH% 

Ok, tôi thêm bin/ thư mục vào PATH và chạy go get một lần nữa nhưng gặp phải lỗi tương tự:

C:\sbox\go\example>set PATH=%PATH%;C:\sbox\go\example\bin 

C:\sbox\go\example>go get code.google.com/p/go.example/hello 
# cd .; hg clone -U https://code.google.com/p/go.example C:\sbox\go\example\src\code.google.com\p\go.example 
package code.google.com/p/go.example/hello: exec: "hg": executable file not found in %PATH% 

Tôi cần làm gì để có được kết quả như được mô tả trong hướng dẫn - các gói từ xa được cài đặt và tôi có thể sử dụng chúng?

Trả lời

16

Gói bạn đang cố gắng cài đặt nằm trong hệ thống kiểm soát nguồn Mercurial (hg). Bạn cần cài đặt Mercurial để có thể sao chép gói.

Các vấn đề liên quan