Pengimport go, alat yang berkuasa untuk menganalisis kebergantungan pakej, kadangkala boleh menghasilkan ralat yang membingungkan, seperti pakej tidak ditemui. Untuk membetulkan isu ini, adalah penting untuk memahami had pengimport.
Inti utama perkara ini terletak pada fakta bahawa pengimport go, tidak seperti pengurus pergantungan seperti modul dep atau go, tidak memuat turun pakej secara automatik. Ini bermakna sebelum menggunakan pengimport, anda mesti mendapatkan semula pakej secara manual ke dalam GOPATH anda menggunakan go get atau melaksanakan pengurusan pergantungan menggunakan modul go.
Contoh:
<code class="go">package main import ( "fmt" "go/importer" ) func main() { pkg, err := importer.Default().Import("github.com/onsi/ginkgo") if err != nil { panic(err) } fmt.Println(pkg) }</code>
Coretan kod ini cuba mengimport pakej github.com/onsi/ginkgo, tetapi ia akan mengakibatkan ralat kerana pakej itu belum ada dalam GOPATH. Untuk menyelesaikan masalah ini, anda boleh melaksanakan:
go get -u github.com/onsi/ginkgo
Sebagai alternatif, anda boleh menggunakan modul Go dengan memulakan modul Go dalam direktori pakej anda dengan:
$ GO111MODULE=on go mod init $ GO111MODULE=on go mod tidy
Pendekatan ini mengarahkan modul go sistem untuk memeriksa kod anda, menentukan kebergantungan, dan mendapatkannya mengikut keperluan. Anda juga boleh memasang pakej tertentu secara manual menggunakan:
$ go install github.com/onsi/ginkgo
Dengan mengikut langkah ini, anda boleh memastikan bahawa pengimport go mempunyai akses kepada pakej yang diperlukan, membolehkan anda menganalisis jenis pakej tersebut dengan jayanya.
Atas ialah kandungan terperinci Mengapa Pengimport Pergi Memulangkan Ralat \'Pakej Tidak Ditemui\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!