~/src/go-statsd-client> echo $GOPATH
/Users/me/gopath
~/src/go-statsd-client> echo $GOROOT
/usr/local/Cellar/go/1.1.1\
~/src/go-statsd-client> go install
go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH
Независимо от того, в какой структуре находится проект, всегда происходит одно и то же сообщение. Go build работает отлично.
Вот мой go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/me/gopath"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.1.1"
GOTOOLDIR="/usr/local/Cellar/go/1.1.1/pkg/tool/darwin_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"
CGO_ENABLED="1"
Это на Mac OSX Mountain Lion и Go был установлен вместе с доморощенным.
$GOPATH/bin
каталога. Создание этой папки было необходимым - мне не нужно было устанавливатьGOBIN
env var.PYTHONHOME
вместоGOROOT
иPYTHONPATH
вместоGOPATH
. Даже (ГХ) С имеетLIBRARY_PATH
,C_INCLUDE_PATH
и т.д.export GOPATH=$PWD
(стоящий в корне дерева клонов Голанга) ваш ответ не может объяснить ошибку в этом случае.GOPATH
, но со стороны это кажется совершенно бессмысленным. Почему я должен мутировать глобальные переменные среды только для того, чтобы создать пакет локально AlexanderДля любых пользователей OS X и будущих пользователей вы также должны установить,
GOBIN
чтобы избежать этого запутанного сообщения об установке иgo get
источник
GOBIN
. Если настройка$GOPATH/bin
имеет значение, значит что-то не так с вашей настройкой, или вы делаете что-то, что не должны делать.Вы используете go install в каталоге вне папки GOPATH. Установите переменную GOBIN env или переместите папку src в GOPATH.
Дополнительная информация: GO BUILD Исходный код , строка 296
источник
Вам нужно настроить оба
GOPATH
иGOBIN
. Убедитесь, что вы сделали следующее (пожалуйста, замените его~/go
на предпочитаемое,GOPATH
а затем изменитеGOBIN
). Это проверено наUbuntu 16.04 LTS
.Выбранный ответ не решил проблему для меня.
источник
Вам нужно иметь 3 каталога внутри выбранного вами каталога GOPATH.
Затем вы запустите
go install
изнутри someProgram (который помещает исполняемый файл в bin) или someLibrary (который помещает библиотеку в pkg).источник
У меня была эта проблема на Windows.
Моя проблема заключалась в том, что моя
%GOPATH%
переменная окружения была установлена наC:\Users\john\src\goworkspace
вместо того
C:\Users\john\src\goworkspace\
Добавление пропущенной косой черты в конце исправило это для меня.
источник
Для чего это стоит, вот мой .bash_profile, который хорошо работает для меня на Mac с Atom, после установки идти с Homebrew:
источник
В моем случае (OS X) это было потому , что я поставил
GOPATH
на/home/username/go
(как в книге) вместо/Users/username/go
источник
Я на Windows, и я получил его, дав команду
go help gopath
cmd, и прочитал жирный текст в инструкции,то есть , если код wnat установки находится
..BaseDir...\SomeProject\src\basic\set
, то GOPATH не должен быть таким же адресом как код, он должен быть только Base Project DIR:..BaseDir...\SomeProject
.Если GOPATH был установлен на Base Project DIR и все еще имеет эту проблему, в Windows вы можете попытаться установить GOBIN как
Base Project DIR\bin
или%GOPATH%\bin
.источник
Осторожнее при беге
Предположим, что ваш код существует в определенных местах, связанных с
GOPATH
. Так что вместо этого вы можете использовать docker для запуска любой команды go:И теперь вы можете использовать любую команду golang, например:
источник
В windows мое окно cmd уже было открыто, когда я установил переменную среды GOPATH. Сначала мне пришлось закрыть cmd, а затем снова открыть, чтобы он вступил в силу.
источник
Проблема в том, что вы находитесь не в каталоге пакета, в котором есть файл go с функцией go main, и go install не может найти команду (файл go с функцией go main), которую вы хотите установить.
и затем запустите:
источник
На OSX Мохаве 10.14,
go
как правило , установлен на/usr/local/go
.Следовательно, настройте эти ENV, и вы должны быть готовы к работе.
export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin
Кроме того, добавьте их к себе
bash_profile
или,zsh_profile
если это работает.echo "export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin" >> ~/.bash_profile && source ~/.bash_profile
источник