Не удается найти пакет в каталоге проекта - PullRequest
0 голосов
/ 24 июня 2018

Я пытался решить эту проблему в течение последних двух часов.Я не могу, насколько я понимаю, понять, как разработчики Go проделали такую ​​прекрасную работу с языком, но такую ​​ужасную работу с управлением пакетами.

Вот мой вывод go env:

GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/<me>/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/<me>/Documents/Proj/go"
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/z4/b3lxy_51405_b8pb_680l4xh0000gn/T/go-build063693521=/tmp/go-build -gno-record-gcc-switches -fno-common"

Обратите внимание, что мои GOPATH и GOROOT установлены.

Вот структура моего рабочего пространства go (/Users/<me>/Documents/Proj/go):

go/
|-bin/
|-pkg/
|-src/
  |--github.com/
    |--user/
      |--myproject/
        |--client/
          |--client.go
        |--main.go

Здесьмой client.go файл:

// client.go
package client

type MyClient struct {}

это мой main.go файл:

// main.go
package main

import "client"

func main() {}

Когда я запускаю go build в корне проекта, я получаю эту ошибку:

main.go:4:2: cannot find package "client" in any of:
    /usr/local/opt/go/libexec/src/transport (from $GOROOT)
    /Users/<me>/Documents/Proj/go/src/transport (from $GOPATH)

В первый раз, когда это случилось, я попытался исправить путь выше:

// main.go
package main

import "github.com/user/myproject/client"

func main() {}

Затем я получил эту ошибку:

main.go:4:2: cannot find package "client" in any of:
    /usr/local/opt/go/libexec/src/transport (from $GOROOT)
    /Users/<me>/Documents/Proj/go/src/github.com/user/myproject/transport (from $GOPATH)

Что странно, так какпакет существует по этому точному пути.

Что я делаю не так ??

1 Ответ

0 голосов
/ 24 июня 2018

Вы не должны импортировать clien t, но какой путь идет от GOPATH/src, в данном конкретном случае github.com/user/myproject/client, потому что это ваш путь.

Я вижу, как вы описываете свою проблемуне совсем так, как на вашем компьютере.Вы заменили некоторые вещи.Это понятно, вы не хотите рассказывать миру, как выглядит ваш компьютер.Таким образом, вы заменили свое имя на «<me>».

Вы также заменили имя проекта на MyProject в своем вопросе, то есть, также как и имя пользователя, потенциальное место для ошибки, которую мы не можем увидеть, потому что вы заменили ее.Никогда не используйте длинные имена в путях разработки в Windows, потому что иногда Windows делает с ними грязные трюки.

Я уверен, что есть проблема, которая является проблемой.Попробуйте использовать ваше краткое имя каталога в go-path.Проверьте это: https://superuser.com/questions/1182040/strange-short-path-name-on-windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...