упаковка code.google.com/p/go.example/hello: exec: "hg": исполняемый файл не найден в %PATH%. Как получить удаленные пакеты golang?

я делаю, как написано в учебнике Golang http://golang.org/doc/code.html#remote

Мои настройки env:

C:sboxgoexample>set go
    GOPATH=C:sboxgoexample
    GOROOT=C:Go

на :

C:sboxgoexample
             |
             --src

теперь я звоню go get как описано и получаю ошибку:

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

после вызова go get, хотя моя example/ папка будет такой:

C:sboxgoexample
             |
             --src
                |
                code.google.com
                       |
                       --p

и это все. Больше ничего не установлено.

Затем Я добавьте код в мою структуру каталогов, и она станет такой:

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

hello.go такой:

package main

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

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

sqrt.go такой:

// 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
}

я просто справляюсь / вставляю их. Все как написано в учебнике. Тогда я делаю go install и запустить проект. Все работает нормально:

C:sboxgoexamplesrcgithub.comuserhello>go install

C:sboxgoexamplebin>hello
Hello, world.  Sqrt(2) = 1.414213562373095

теперь я снова запустить go get и получите ту же ошибку:

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

хорошо, я добавляю bin/ каталог к пути и запустить go get снова, но получить та же ошибка:

C:sboxgoexample>set PATH=%PATH%;C:sboxgoexamplebin

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

что мне нужно сделать, чтобы получить результат, как описано в учебнике-установлены удаленные пакеты, и я могу их использовать?

1 ответов


пакет, который вы пытаетесь установить, находится под Mercurial (hg) системы управления исходным кодом. Вам нужно установить ртутный чтобы иметь возможность клонировать пакет.