Я хочу установить 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?
macos
installation
go
Мона Джалал
источник
источник
Ответы:
[Обновление: начиная с 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
.По желанию, через Роба Пайка вы также можете установить,
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
.Кит Rarick отмечает вы можете установить ,
GOPATH=$HOME
чтобы положить иеsrc/
,pkg/
иbin/
каталоги прямо под домашним каталогом. Это может быть хорошо (например, вы, возможно, уже$HOME/bin
на своем пути), но, конечно, некоторые люди используют несколько рабочих пространств и т. Д.источник
src/
содержит, например,github.com/youruser/x
иgithub.com/youruser/y
. Это то, чем я занимаюсь. У людей могут быть свои причины поступать иначе (политика компании по разделению проектов?), Но я не могу говорить об этом.echo $GOPATH
говорит? Возможно, стоит опубликовать в качестве отдельного вопроса; Похоже, вы попали в какую-то необычную ситуацию, и отладка в комментариях может быть сложной.export
; запустить,/bin/bash -c "echo \$GOPATH"
чтобы убедиться, что подпроцессы могут видеть$GOPATH
; если оно пустое, то беги,export GOPATH
а потомgo get ...
Этот работал
Настройка среды разработки Go на Ubuntu и как исправить $ GOPATH / $ GOROOT
меры
Установите $ GOPATH в .bashrc,
источник
Используя варево
Я установил его с помощью
brew
.Когда это будет сделано, если вы запустите эту команду brew, она покажет следующую информацию:
Важными частями этих строк являются:
Настройка среды GO
Это показывает, где GO был установлен. Нам нужно сделать следующее для настройки среды GO:
Затем вы можете проверить, используя GO, чтобы убедиться, что он настроен правильно:
Настройка json2csv
Выглядит хорошо, поэтому давайте установим
json2csv
:Что сейчас произошло? Это установило это. Вы можете проверить так:
Хорошо, так почему я не могу набрать
json2csv
в моей оболочке? Это потому, что/bin
каталог$GOPATH
не находится на вашем$PATH
.Итак, давайте временно добавим это:
И перепроверьте:
Теперь это там:
Добавьте изменения, которые мы внесли
$PATH
и$GOPATH
в ваш,$HOME/.bash_profile
чтобы они сохранялись между перезагрузками.источник
Смотреть видео
В общем, я всегда рекомендую это официальное видео от Go, чтобы получить краткий обзор по этому вопросу:
http://www.youtube.com/watch?v=XCsL89YtqCs
Это легче показать, чем сказать.
@jwfearn перефразировал важную часть видео:
источник
Мне было проще сделать это так:
источник
Для MAC это работало хорошо для меня.
и добавьте ниже в конце файла
Это должно решить проблему. Попробуйте открыть новый терминал и повторить $ GOPATH, вы должны увидеть правильное значение.
источник
(для MAC)
Я попробовал все эти ответы, и по какой-то пока неизвестной причине ни один из них не сработал.
Мне пришлось «принудительно кормить» GOPATH, устанавливая переменную окружения для каждой команды, которая требовала этого. Например:
Даже
glide
дал мнеGOPATH not set
ошибку. Решил это, опять же, путем «принудительного кормления»: я попробовал все эти ответы, и по какой-то пока неизвестной причине ни один из них не сработал.Мне пришлось «принудительно кормить» GOPATH, устанавливая переменную окружения для каждой команды, которая требовала этого.
Надеюсь, это кому-нибудь поможет.
источник
Ваш
$GOROOT
не должен быть настроен. Вы$GOPATH
должны быть установлены$HOME/go
, набравexport $GOPATH=$HOME/go
Пожалуйста, введите,
export GOROOT=""
чтобы исправить вашу проблему.источник
Просто делай
export GOPATH="/whatever/you/like/your/GOPATH/to/be"
.источник
Если вы столкнулись с этой проблемой после
$GOPATH
настройки, это может быть связано с тем, что вы запускаете ее с неподдерживаемой оболочкой. Я использовал,fish
и он не работал, запуск егоbash
работал нормально.источник
Вы можете использовать «экспортное» решение так же, как и другие ребята. Я хотел бы предоставить вам другое решение для постоянного удобства: вы можете использовать любой путь в качестве GOPATH при запуске команд Go.
Во-первых, вам нужно скачать небольшой инструмент с именем
gost
: https://github.com/byte16/gost/releases . Если вы используете Ubuntu, вы можете скачать версию для Linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Затем вам нужно запустить команды ниже, чтобы распаковать его:
Вы получите исполняемый файл
gost
. Вы можете переместить его/usr/local/bin
для удобного использования:Запустите команду ниже, чтобы добавить путь, который вы хотите использовать в качестве GOPATH, в пространство путей
gost
. Требуется дать пути имя, которое вы будете использовать позже.Запустите любую нужную команду Go в формате:
Например, вы хотите работать
go get github.com/go-sql-driver/mysql
с/home/foobar/bar
как GOPATH, просто сделать это , как показано ниже:Это поможет вам установить GOPATH и запустить команду. Но помните , что вы добавили путь в
gost
«S pathspace . Если вы находитесь под каким-либо уровнем подкаталогов/home/foobar/bar
, вы можете даже просто запустить команду ниже, которая будет делать то же самое для краткости:gost
это простой инструмент Go, который может помочь вам управлять GOPATH и выполнять команды Go. Для получения более подробной информации о том, как использовать его для запуска других команд Go, вы можете просто запуститьgost help goCmdName
. Например, вы хотите узнать больше оinstall
, просто введите слова ниже в:Вы также можете найти более подробную информацию в README проекта: https://github.com/byte16/gost/blob/master/README.md
источник
Запустите 'go env' и посмотрите, куда в данный момент указывает ваша GOPATH. Если вы перейдете в этот каталог, ваша команда 'go get..etc' должна работать.
источник
Эта проблема возникла у меня в Raspberry Pi. Я вошел в систему через клиент VNC. Проблема сохраняется, несмотря на установку и экспорт GOPATH. Затем запустил команду "go get" без sudo, и она сработала отлично.
источник
Мне пришлось запустить приложение от имени пользователя root (чтобы открыть веб-сервер на порту 80), это вызвало у меня ошибку, потому что пользователь sudo имеет среду, отличную от обычного пользователя, поэтому GOPATH не был установлен.
Если у кого-то еще возникла эта проблема, добавьте
-E
в команду, это сохранит пользовательскую среду.sudo -E go run main.go
Для получения дополнительной информации см. Обсуждение здесь: Google Groups - GOPATH Problem
источник