Saya ingin menginstal json2csv menggunakan pergi github.com/jehiah/json2csv
tapi aku menerima kesalahan ini:
package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path
Bantuan tentang cara untuk memperbaiki hal ini pada MacOS?
[Update: sebagai Go 1.8, GOPATH
default $HOME/pergi
, tapi anda masih dapat menemukan ini berguna jika anda ingin memahami GOPATH
tata letak, menyesuaikan, dll.]
Go resmi situs membahas GOPATH dan bagaimana lay out ruang kerja direktori.
ekspor GOPATH="$HOME/anda-kerja-dir/"
-- jalankan di shell anda, kemudian tambahkan ke ~/.bashrc
atau setara sehingga akan ditetapkan untuk anda di masa depan. Pergi akan menginstal paket-paket di bawah src/
, bin/
, dan pkg/
, subdirektori di sana. Anda'll ingin menempatkan anda sendiri paket di suatu tempat di bawah $GOPATH/src
, seperti $GOPATH/src/github.com/myusername/
bila anda ingin mempublikasikan ke GitHub. Anda'll juga mungkin ingin export PATH=$PATH:$GOPATH/bin
anda .bashrc
sehingga anda dapat menjalankan disusun program-program di bawah $GOPATH
.
Opsional, via Rob Pike, anda juga dapat mengatur CDPATH
sehingga's lebih cepat untuk cd
untuk paket dirs di bash: ekspor CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x
berarti anda hanya bisa mengetik cd net/html
bukan cd $GOPATH/src/golang.org/x/net/html
.
Keith Rarick catatan anda dapat mengatur GOPATH=$HOME
untuk menempatkan Go's src/
, pkg/
dan bin/
direktori kanan bawah anda homedir. Yang bisa menyenangkan (misalnya, anda mungkin sudah memiliki $HOME/bin
di jalan anda) tapi tentu saja, beberapa orang menggunakan beberapa ruang kerja, dll.
Yang satu ini bekerja
Langkah-langkah
mkdir ~/go
Set $GOPATH di .bashrc,
export GOPATH=~/go
export PATH=$PATH:$GOPATH/bin
Saya diinstal menggunakan minuman
.
$ brew install go
Ketika hal itu dilakukan jika anda menjalankan ini minuman perintah itu'll lihat info berikut:
$ 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
Buah penting ada garis-garis ini:
/usr/local/Gudang/go/1.4.2 (4676 file, 158M) *
export PATH=$PATH:/usr/local/opt/go/libexec/bin
Yang menunjukkan di mana GO diinstal. Kita perlu melakukan hal berikut untuk setup PERGI's lingkungan:
$ export PATH=$PATH:/usr/local/opt/go/libexec/bin
$ export GOPATH=/usr/local/opt/go/bin
Anda kemudian dapat menggunakan check PERGI untuk melihat jika it's dikonfigurasi dengan benar:
$ 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"
Terlihat baik, jadi mari kita install json2csv
:
$ go get github.com/jehiah/json2csv
$
Apa yang baru saja terjadi? Itu diinstal. Anda bisa cek seperti ini:
$ $ ls -l $GOPATH/bin
total 5248
-rwxr-xr-x 1 sammingolelli staff 2686320 Jun 9 12:28 json2csv
OK, jadi mengapa bisa't I jenis json2csv
di shell saya? Yang's karena /bin
direktori di bawah $GOPATH
isn't pada $PATH
.
$ type -f json2csv
-bash: type: json2csv: not found
Jadi let's sementara menambahkannya:
$ export PATH=$GOPATH/bin:$PATH
Dan re-check:
$ type -f json2csv
json2csv is hashed (/usr/local/opt/go/bin/bin/json2csv)
Sekarang ini's ada:
$ 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
Tambahkan modifikasi kami've dilakukan untuk $PATH
dan $GOPATH
untuk anda $HOME/.bash_profile
untuk membuat mereka bertahan antara reboot.
Secara umum, saya selalu menyarankan ini video resmi dari Go untuk mendapatkan gambaran singkat tentang masalah ini:
It's mudah untuk ditampilkan dari yang akan disampaikan.
@jwfearn diparafrasekan bagian penting dari video tersebut:
ekspor GOPATH="${HOME}/gocode"; export PATH="${PATH}:${GOPATH}/bin"; mkdir -p "${GOPATH"
Saya menemukan lebih mudah untuk melakukannya seperti ini:
export GOROOT=$HOME/go
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH
Untuk MAC ini bekerja dengan baik bagi saya.
sudo nano /etc/bashrc
dan tambahkan kode berikut di akhir file
export PATH=$PATH:/usr/local/opt/go/libexec/bin
export GOPATH=/usr/local/opt/go/bin
Ini harus memperbaiki masalah. Coba buka terminal baru dan echo $GOPATH anda harus melihat nilai yang benar.
(for MAC)
Saya mencoba semua jawaban ini dan, untuk beberapa alasan yang tidak diketahui, tidak satupun dari mereka bekerja.
Aku harus "force feed" GOPATH dengan mengatur variabel lingkungan per setiap perintah yang diperlukan itu. Misalnya:
sudo env GOPATH=$HOME/goWorkDirectory go build ...
Bahkan meluncur
memberi saya GOPATH tidak diatur
kesalahan. Diselesaikan itu, sekali lagi, "force feeding":
Saya mencoba semua jawaban ini dan, untuk beberapa alasan yang tidak diketahui, tidak satupun dari mereka bekerja.
Aku harus "force feed" GOPATH dengan mengatur variabel lingkungan per setiap perintah yang diperlukan itu.
sudo env GOPATH=$HOME/goWorkDirectory glide install
Semoga ini bisa membantu seseorang.
Anda dapat menggunakan "ekspor" solusi seperti apa yang orang lain telah menyarankan. I'd seperti untuk menyediakan anda dengan solusi lain untuk tetap nyaman: anda dapat menggunakan jalan sebagai GOPATH ketika berjalan Pergi perintah.
Pertama, anda perlu men-download sebuah alat kecil bernama gost
: https://github.com/byte16/gost/releases . Jika anda menggunakan ubuntu, anda dapat men-download versi linux(https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz).
Kemudian anda harus menjalankan perintah di bawah ini untuk membukanya :
$ cd /path/to/your/download/directory
$ tar -xvf gost_linux_amd64.tar.gz
Anda akan mendapatkan eksekusi gost
. Anda dapat memindahkannya ke /usr/local/bin
untuk penggunaan yang mudah:
$ sudo mv gost /usr/local/bin
Jalankan perintah berikut untuk menambahkan path yang ingin anda gunakan sebagai GOPATH ke pathspace gost
mempertahankan. Hal ini diperlukan untuk memberikan jalan nama yang akan anda gunakan nanti.
$ gost add foo /home/foobar/bar # 'foo' is the name and '/home/foobar/bar' is the path
Menjalankan setiap Pergi perintah yang anda inginkan dalam format:
gost goCommand [-p {pathName}] -- [goFlags...] [goArgs...]
Misalnya, anda ingin berlari pergi github.com/go-sql-driver/mysql
dengan /home/foobar/bar
sebagai GOPATH, lakukan saja seperti di bawah ini:
$ gost get -p foo -- github.com/go-sql-driver/mysql # 'foo' is the name you give to the path above.
Ini akan membantu anda untuk mengatur GOPATH dan menjalankan perintah. Tapi ingat bahwa anda telah menambahkan path ke gost
's pathspace. Jika anda berada di bawah tingkat subdirektori /home/foobar/bar
, anda bahkan bisa hanya menjalankan perintah di bawah ini yang akan melakukan hal yang sama untuk jangka pendek :
$ gost get -- github.com/go-sql-driver/mysql
gost
adalah Alat Sederhana dari mana saja yang dapat membantu anda untuk mengelola GOPATHs dan berjalan Pergi perintah. Untuk rincian lebih lanjut tentang bagaimana untuk menggunakannya untuk menjalankan lain Pergi perintah, anda hanya dapat menjalankan gost membantu goCmdName
. Misalnya anda ingin tahu lebih banyak tentang install
, cukup ketik kata-kata di bawah ini:
$ gost help install
Anda juga dapat menemukan rincian lebih lanjut di README dari proyek: https://github.com/byte16/gost/blob/master/README.md
Aku harus menjalankan aplikasi sebagai root (untuk membuka web server pada port 80), ini menghasilkan kesalahan bagi saya, karena pengguna sudo memiliki lingkungan yang berbeda dari user biasa, maka GOPATH tidak diatur.
Jika orang lain memiliki masalah ini, tambahkan -E
untuk perintah ini akan melestarikan lingkungan pengguna.
sudo -E pergi menjalankan utama.pergi
Untuk info lebih lanjut lihat pembahasan berikut ini: Google Groups – GOPATH Masalah