невозможно загрузить, $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?

Комментарии к вопросу (3)
Решение

[Обновление: начиная с Go 1.8, GOPATH по умолчанию имеет значение $HOME/go, но вы все равно можете найти это полезным, если хотите понять расположение GOPATH, настроить его и т.д.].

Официальный сайт Go обсуждает GOPATH и то, как расположить каталог рабочего пространства.

export GOPATH="$HOME/ваше рабочее пространство-dir/" -- запустите это в вашей оболочке, затем добавьте это в ~/.bashrc или эквивалент, чтобы это было установлено для вас в будущем. Go установит пакеты в подкаталоги src/, bin/ и pkg/. Вы'захотите поместить свои собственные пакеты куда-нибудь в $GOPATH/src, например $GOPATH/src/github.com/myusername/, если вы хотите публиковаться на GitHub. Вам также, вероятно, понадобится export PATH=$PATH:$GOPATH/bin в вашем .bashrc, чтобы вы могли запускать скомпилированные программы в $GOPATH.

Как вариант, через Роба Пайка, вы также можете установить CDPATH, чтобы быстрее cd в папки пакетов в bash: export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x означает, что вы можете просто набрать cd net/html вместо cd $GOPATH/src/golang.org/x/net/html.

Keith Rarick notes вы можете установить GOPATH=$HOME, чтобы поместить Go'ssrc/, pkg/ и bin/ каталоги прямо в ваш homedir. Это может быть удобно (например, у вас уже есть $HOME/bin в пути), но, конечно, некоторые люди используют несколько рабочих пространств и т.п.

Комментарии (5)

Через самогон

Я установил его с помощью самогон.

$ brew install go

Когда это было сделано, если вы запустите этот квас команды'Лл показывают следующую информацию:

$ 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

Важные куски есть и такие строки:

и GT; /usr/местные/погреб/перейти/1.4.2 (4676 файлы, высота 158m) *

экспорт путь=пути$path:/usr/местные/опт/перейти/IP-адресов/ОГРН

Настройка идете's в среду

Это показывает, куда идти был установлен. Нам нужно сделать следующие настройки зайти'окружающей среды:

$ export PATH=$PATH:/usr/local/opt/go/libexec/bin
$ export GOPATH=/usr/local/opt/go/bin

Затем вы можете проверить с помощью идти, чтобы увидеть, если это'ы правильно настроен:

$ 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 в моей оболочке? Что's, потому что каталог /Бин в разделе $GOPATH-это'т на$путь ваш`.

$ type -f json2csv
-bash: type: json2csv: not found

Так давайте'ы временно добавить это:

$ export PATH=$GOPATH/bin:$PATH

И повторно проверьте:

$ type -f json2csv
json2csv is hashed (/usr/local/opt/go/bin/bin/json2csv)

Теперь это'ы есть:

$ json2csv --help
Usage of json2csv:
  -d=",": delimiter used for output values
  -i="": /path/to/input.json (optional; default is stdin)
  -k=[]: fields to output
  -o="": /path/to/output.json (optional; default is stdout)
  -p=false: prints header to output
  -v=false: verbose output (to stderr)
  -version=false: print version string

Добавить изменения, которые мы'ве сделал для $Path " и " $GOPATH своей $дома/.файл, чтобы заставить их сохраняться между перезагрузками.

Комментарии (1)

Смотреть видео

В общем, я всегда рекомендую это официальное видео от Go, чтобы получить быстрый обзор по данному вопросу:

http://www.youtube.com/watch?v=XCsL89YtqCs

Проще показать, чем рассказать.

@jwfearn перефразировал важную часть видео:

export GOPATH="${HOME}/gocode"; export PATH="${PATH}:${GOPATH}/bin"; mkdir -p "${GOPATH}".

Комментарии (2)

Я нашел проще сделать это так:

export GOROOT=$HOME/go
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH
Комментарии (0)

Для Mac это хорошо работал для меня.

sudo nano /etc/bashrc

и добавить ниже в конце файла

export PATH=$PATH:/usr/local/opt/go/libexec/bin
export GOPATH=/usr/local/opt/go/bin

Это должно решить проблему. Попробуйте открыть новый терминал и Echo $GOPATH вы должны увидеть правильное значение.

Комментарии (0)

$Ваш GOROOT не должна быть настроена. Вы $GOPATH должен быть установлен в $дома/пойти вписав экспорт $GOPATH=$дома/пойти

Экспортируйте, пожалуйста, введите GOROOT=" и"` В, чтобы исправить вашу проблему.

Комментарии (0)

(для Mac)

Я пробовал все эти ответы и, по все еще непонятным причинам, никто из них не работал.

У меня было, чтобы "насильно" в GOPATH, установив переменную окружения для каждой команды, что требует его. Например:

sudo env GOPATH=$HOME/goWorkDirectory go build ...

Даже скользить дает мне GOPATH не задано об ошибке. Решить ее, опять же, на "силу подачи и": Я пробовал все эти ответы и, по все еще непонятным причинам, никто из них не работал.

У меня было, чтобы "насильно" в GOPATH, установив переменную окружения для каждой команды, что требует его.

sudo env GOPATH=$HOME/goWorkDirectory glide install

Надеюсь, что это помогает кто-то.

Комментарии (0)

Просто сделайте export GOPATH="/whatever/you/like/your/GOPATH/to/be".

Комментарии (1)

Бежать 'идти ОКР' и увидеть, где ваш GOPATH в настоящее время направлен в сторону. Если вы перейдете в этот каталог, ваш 'иди..и т. д' команда должна работать.

Комментарии (0)

Эта проблема произошла со мной в малиновый Пи. Я подключился через VNC клиент Проблема сохраняется несмотря на создание и экспорт GOPATH. Потом побежал в "Иди" в команду без sudo и он работал отлично.

Комментарии (0)

Если вы столкнулись с этой проблемой после того, как $GOPATH, оно может быть потому, что вы'вновь работает с неподдерживаемой оболочки. Я использовал рыбы и он не работает, запустив его с Баш работал нормально.

Комментарии (0)

Вы можете использовать "на экспорт" и решение как другие ребята предложили. Я'd, как, чтобы предоставить вам другое решение для постоянного удобство: вы можете использовать любой путь, как GOPATH при выполнении команды go.

Во-первых, вам нужно скачать небольшой инструмент под названием ГОСТ : https://github.com/byte16/gost/releases . Если вы используете Ubuntu, вы можете скачать версию для Linux(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

Вы получите исполняемый ГОСТ. Вы можете переместить его в/usr/местные/Бен для удобного использования:

$ sudo mv gost /usr/local/bin

Выполните команду ниже чтобы добавить путь, который вы хотите использовать в качестве GOPATH в pathspace ГОСТ поддерживает. Это необходимо, чтобы дать путь имя, которое вы будете использовать позже.

$ gost add foo /home/foobar/bar     # 'foo' is the name and '/home/foobar/bar' is the path

Выполнение команды перейти необходимо в формате:

gost goCommand [-p {pathName}] -- [goFlags...] [goArgs...]

Например, вы хотите запустить иди github.com/go-sql-driver/mysql с /дома/программой/бар как GOPATH, просто сделайте это, как показано ниже:

$ gost get -p foo -- github.com/go-sql-driver/mysql  # 'foo' is the name you give to the path above.

Это поможет вам установить GOPATH и выполните команду. Но помните, что вы добавили путь в ГОСТpathspace. Если вы находитесь под любой уровень подкаталогов /дома/программой/бар, вы даже можете просто запустить следующую команду, которая будет делать то же самое для краткости :

$ gost get -- github.com/go-sql-driver/mysql

ГОСТ представляет собой простой инструмент, которых может помочь вам управлять GOPATHs и выполнения команд. Для получения более подробной информации о том, как использовать его для выполнения других команд идти, вы можете просто запустить ГОСТ помочь goCmdName. Например, вы хотите узнать больше о "установить", просто введите слова ниже:

$ gost help install

Вы также можете найти более подробную информацию в README проекта: https://github.com/byte16/gost/blob/master/README.md

Комментарии (0)

Мне пришлось запустить приложения как root (для открытия веб-сервер на порту 80), это вызвало ошибку для меня, потому что пользователя sudo имеет другой среды, чем обычный пользователь, поэтому GOPATH не был установлен.

Если кто-то еще, имеющий эту проблему, добавьте -E для команды, это позволит сохранить окружающую среду пользователя.

`судо -е беги главного.идти

Для получения дополнительной информации см. обсуждение здесь: группы Google – GOPATH проблема

Комментарии (1)