не удается загрузить, $GOPATH не установлен
Я хочу установить json2csv с помощью go get github.com/jehiah/json2csv
но я получаю эту ошибку:
package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path
любая помощь о том, как исправить это на MacOS?
14 ответов
[обновление: с Go 1.8,GOPATH
по умолчанию $HOME/go
, но вы все равно можете найти это полезным, если хотите понять GOPATH
макет, настроить его и т. д.]
официальный сайт Go обсуждает GOPATH и как выложить каталог рабочего пространства.
export GOPATH="$HOME/your-workspace-dir/"
-- запустите его в своей оболочке, затем добавьте его в ~/.bashrc
или аналог, чтобы сделать его для вас в будущем. Go установит пакеты под src/
, bin/
и pkg/
, подкаталоги там. Вы захотите поместить свои собственные пакеты где-нибудь под $GOPATH/src
, как $GOPATH/src/github.com/myusername/
если вы хотите опубликовать на GitHub. Вы также, вероятно, хотите export PATH=$PATH:$GOPATH/bin
в своем .bashrc
таким образом, вы можете запускать скомпилированные программы в $GOPATH
.
дополнительно via Rob Pike, вы также можете установить CDPATH
так что это быстрее cd
для упаковки dirs в bash:export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x
означает, что вы можете просто ввести cd net/html
вместо cd $GOPATH/src/golang.org/x/net/html
.
Кит Rarick Примечания вы можете set GOPATH=$HOME
поставить гоу src/
, pkg/
и bin/
каталоги прямо под вашим homedir. Это может быть приятно (например, у вас уже может быть $HOME/bin
на вашем пути) , но, конечно, некоторые люди используют несколько рабочих пространств и т. д.
работает
настройка среды разработки Go на Ubuntu и как исправить $GOPATH / $GOROOT
шаги
mkdir ~/go
установить $GOPATH В.bashrc следующее,
export GOPATH=~/go
export PATH=$PATH:$GOPATH/bin
использование brew
я установил его с помощью brew
.
$ brew install go
когда это было сделано, если вы запустите эту команду brew, она покажет следующую информацию:
$ brew info go
go: stable 1.4.2 (bottled), HEAD
Go programming environment
https://golang.org
/usr/local/Cellar/go/1.4.2 (4676 files, 158M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/go.rb
==> Options
--with-cc-all
Build with cross-compilers and runtime support for all supported platforms
--with-cc-common
Build with cross-compilers and runtime support for darwin, linux and windows
--without-cgo
Build without cgo
--without-godoc
godoc will not be installed for you
--without-vet
vet will not be installed for you
--HEAD
Install HEAD version
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
https://golang.org/doc/code.html#GOPATH
You may wish to add the GOROOT-based install location to your PATH:
export PATH=$PATH:/usr/local/opt/go/libexec/bin
важные части есть следующие строки:
/ usr / local / Cellar / go / 1.4.2 (4676 файлов, 158M)*
экспортировать переменную PATH=$PATH: в/usr/местные/опт/перейти/IP-адресов/ОГРН
настройка среды GO
это показывает, куда идти был установлен. Нам нужно сделать следующее, Чтобы настроить среду GO:
$ export PATH=$PATH:/usr/local/opt/go/libexec/bin
$ export GOPATH=/usr/local/opt/go/bin
затем вы можете проверить с помощью GO, чтобы узнать, правильно ли он настроен:
$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/usr/local/opt/go/bin"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.4.2/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.4.2/libexec/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
настройка json2csv
выглядит хорошо, поэтому давайте установим json2csv
:
$ go get github.com/jehiah/json2csv
$
что случилось? Он установил его. Вы можете проверить так:
$ $ ls -l $GOPATH/bin
total 5248
-rwxr-xr-x 1 sammingolelli staff 2686320 Jun 9 12:28 json2csv
хорошо, так почему я не могу ввести json2csv
в моей оболочке? Вот ведь
посмотреть видео
В общем, я всегда рекомендую это официальное видео с Go, чтобы получить краткий обзор по этому вопросу:
http://www.youtube.com/watch?v=XCsL89YtqCs
это легче показать, чем сказать.
@jwfearn перефразировал важную часть видео:
export GOPATH="${HOME}/gocode"; export PATH="${PATH}:${GOPATH}/bin"; mkdir -p "${GOPATH}"
для MAC это хорошо сработало для меня.
sudo nano /etc/bashrc
и добавить в конец файла
export PATH=$PATH:/usr/local/opt/go/libexec/bin
export GOPATH=/usr/local/opt/go/bin
Это должно решить проблему. Попробуйте открыть новый терминал и echo $GOPATH вы должны увидеть правильное значение.
мне было проще сделать это так:
export GOROOT=$HOME/go
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH
(для MAC)
Я пробовал все эти ответы, и по какой-то неизвестной причине ни один из них не работал.
мне пришлось "принудительно кормить" ГОПАТА, устанавливая переменную окружения для каждой команды, которая требовала этого. Например:
sudo env GOPATH=$HOME/goWorkDirectory go build ...
даже glide
давал мне GOPATH not set
ошибка. Разрешил его, опять же, " принудительным кормлением":
Я перепробовал все эти ответы и, по какой-то неизвестной причине, ни один из них работал.
мне пришлось "принудительно кормить" ГОПАТА, устанавливая переменную окружения для каждой команды, которая требовала этого.
sudo env GOPATH=$HOME/goWorkDirectory glide install
надеюсь, это кому-то поможет.
код $GOROOT
Не следует настраивать.
Вы $GOPATH
должно быть установлено в $HOME/go
введя export $GOPATH=$HOME/go
введите export GOROOT=""
исправить вашу проблему.
Если вы столкнулись с этой проблемой после того, как $GOPATH
set up, это может быть потому, что вы запускаете его с неподдерживаемой оболочкой. Я использовал fish
и это не сработало, запустив его с bash
работала нормально.
вы можете использовать решение "экспорт" так же, как и другие ребята предложили. Я хотел бы предоставить вам другое решение для постоянного удобства: вы можете использовать любой путь как GOPATH при выполнении команд Go.
во-первых, вам нужно скачать небольшой инструмент под названием gost
: https://github.com/byte16/gost/releases . Если вы используете ubuntu, вы можете скачать linux version(https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz).
затем вам нужно выполнить команду, чтобы распаковать его :
$ cd /path/to/your/download/directory
$ tar -xvf gost_linux_amd64.tar.gz
вы получите исполняемый файл gost
. Вы можете переместить его в /usr/local/bin
для удобного использования:
$ sudo mv gost /usr/local/bin
выполните команду ниже чтобы добавить путь, который вы хотите использовать в качестве GOPATH в pathspace gost
поддерживает. Необходимо дать пути имя, которое вы будет использовать позже.
$ gost add foo /home/foobar/bar # 'foo' is the name and '/home/foobar/bar' is the path
выполнить любую команду Go вы хотите в формате:
gost goCommand [-p {pathName}] -- [goFlags...] [goArgs...]
например, вы хотите запустить go get github.com/go-sql-driver/mysql
С /home/foobar/bar
как ГОПАТ, просто сделайте это, как показано ниже:
$ gost get -p foo -- github.com/go-sql-driver/mysql # 'foo' is the name you give to the path above.
это поможет вам установить ГОПАТ и выполнить команду. Но помните, что вы добавили путь в gost
' s pathspace. Если вы находитесь под любым уровнем подкаталогов /home/foobar/bar
, вы даже можете просто запустить команду, которая бы делала то же самое для краткости :
$ gost get -- github.com/go-sql-driver/mysql
gost
это простой инструмент Go, который может помочь вам управлять GOPATHs и запускать команды Go. Для получения более подробной информации о том, как использовать его для запуска других команд Go, вы можете просто запустить gost help goCmdName
. Например, вы хотите узнать больше о install
, просто введите слова ниже:
$ gost help install
вы также можете найти более подробную информацию в README проекта:https://github.com/byte16/gost/blob/master/README.md
запустите "go env" и посмотрите, куда ваш ГОПАТ в настоящее время указывает. Если вы перейдете в этот каталог, ваш " go get..команда и должны работать.
эта проблема возникла у меня в raspberry pi. Я вошел в систему через клиент VNC Проблема сохранялась, несмотря на настройку и экспорт GOPATH. Затем запустил команду "go get" без sudo, и она работала отлично.
мне пришлось запустить приложение как root (чтобы открыть веб-сервер на порту 80), это вызвало ошибку для меня, потому что пользователь sudo имеет другую среду, чем обычный пользователь, поэтому GOPATH не был установлен.
Если у кого-то еще есть эта проблема, добавьте -E
для команды это сохранит пользовательскую среду.
sudo -E go run main.go
для получения дополнительной информации см. обсуждение здесь: группы Google-проблема GOPATH