~/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
Tidak peduli struktur apa proyek ini selalu gagal dengan pesan yang sama. Go build bekerja dengan sempurna.
Ini milik saya 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"
Ini ada di Mac OSX Mountain Lion dan go sudah diinstal dengan homebrew.
$GOPATH/bin
direktori. Membuat folder ini diperlukan - saya tidak perlu mengaturGOBIN
env var.PYTHONHOME
alih- alihGOROOT
danPYTHONPATH
bukannyaGOPATH
. Bahkan (GC) C memilikiLIBRARY_PATH
,C_INCLUDE_PATH
, dllexport GOPATH=$PWD
(berdiri di akar pohon klon Golang), jawaban Anda tidak mungkin menjelaskan kesalahan dalam kasus ini.GOPATH
, tetapi dari luar melihat ke dalam, ini tampaknya sama sekali tidak ada artinya. Mengapa saya harus mengubah variabel lingkungan global hanya untuk membuat paket secara lokal 🤔Untuk pengguna OS X dan saya di masa depan, Anda juga perlu mengatur
GOBIN
untuk menghindari pesan yang membingungkan ini saat menginstal dango get
sumber
GOBIN
. Jika mengaturnya untuk$GOPATH/bin
membuat perbedaan, maka ada sesuatu yang salah dengan pengaturan Anda atau Anda melakukan sesuatu yang seharusnya tidak Anda lakukan.Anda menggunakan go install pada direktori di luar folder GOPATH. Atur variabel env GOBIN Anda, atau pindahkan folder src di dalam GOPATH.
Info lebih lanjut: GO BUILD Source code , baris 296
sumber
Anda perlu mengatur keduanya
GOPATH
danGOBIN
. Pastikan Anda telah melakukan yang berikut (silakan ganti~/go
dengan pilihan AndaGOPATH
dan kemudian ubahGOBIN
). Ini diuji padaUbuntu 16.04 LTS
.Jawaban yang dipilih tidak memecahkan masalah bagi saya.
sumber
Anda ingin memiliki 3 direktori di dalam direktori GOPATH pilihan Anda.
Kemudian Anda akan menjalankan
go install
dari dalam beberapaProgram (yang menempatkan executable di bin) atau someLibrary (yang menempatkan perpustakaan dalam pkg).sumber
Saya punya masalah ini di Windows.
Masalah saya adalah bahwa
%GOPATH%
variabel lingkungan saya diatur keC:\Users\john\src\goworkspace
dari pada
C:\Users\john\src\goworkspace\
Menambahkan garis miring yang hilang di akhir memperbaikinya untuk saya.
sumber
Untuk apa nilainya, inilah .bash_profile saya, yang bekerja dengan baik pada saya di mac dengan Atom, setelah menginstal pergi dengan Homebrew:
sumber
Dalam kasus saya (OS X) itu karena saya telah menetapkan
GOPATH
ke/home/username/go
(sesuai buku) daripada/Users/username/go
sumber
Saya di Windows, dan saya mendapatkannya dengan memberikan perintah
go help gopath
ke cmd, dan membaca teks tebal dalam instruksi,yaitu jika kode Anda wnat untuk menginstal adalah di
..BaseDir...\SomeProject\src\basic\set
, yang GOPATH tidak harus lokasi yang sama sebagai kode, harus hanya Basis Proyek DIR:..BaseDir...\SomeProject
.jika GOPATH telah diatur ke Base Project DIR dan masih memiliki masalah ini, di windows Anda dapat mencoba mengatur GOBIN sebagai
Base Project DIR\bin
atau%GOPATH%\bin
.sumber
Hati-hati saat berlari
Go menganggap bahwa kode Anda ada di tempat-tempat tertentu yang terkait dengan
GOPATH
. Jadi, sebagai gantinya, Anda dapat menggunakan buruh pelabuhan untuk menjalankan perintah go:Dan sekarang Anda dapat menggunakan perintah golang apa pun, misalnya:
sumber
Di windows, jendela cmd saya sudah terbuka ketika saya mengatur variabel lingkungan GOPATH. Pertama saya harus menutup cmd dan kemudian buka kembali agar menjadi efektif.
sumber
Masalahnya adalah Anda tidak berada di direktori paket yang memiliki file go dengan fungsi utama go dan go install tidak dapat menemukan perintah (file go dengan fungsi utama go) yang ingin Anda instal.
lalu jalankan:
sumber
Pada OSX Mojave 10.14,
go
yang biasanya dipasang di/usr/local/go
.Karenanya, siapkan ENV ini dan Anda harus melakukannya dengan baik.
export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin
Juga, tambahkan ini ke Anda
bash_profile
atauzsh_profile
jika berhasil.echo "export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin" >> ~/.bash_profile && source ~/.bash_profile
sumber