Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Tidak Boleh Mengimport Pakej Tempatan Dalam Projek GOPATH Saya?

Mengapa Saya Tidak Boleh Mengimport Pakej Tempatan Dalam Projek GOPATH Saya?

DDD
DDDasal
2024-10-31 03:24:30824semak imbas

Why Can't I Import Local Packages Within My GOPATH Project?

Isu Import Pakej GOPATH

Anda menghadapi masalah mengimport pakej tempatan dalam GOPATH anda tetapi tidak dalam direktori utama anda. Struktur projek anda, seperti yang anda telah terangkan, nampaknya betul.

Laluan Import Relatif

Dalam Go, laluan import relatif tidak digalakkan. Ia terutamanya bertujuan untuk percubaan dan tidak disokong sepenuhnya oleh arahan go build and go install. Untuk projek anda berfungsi dengan lancar dengan alatan Go, adalah disyorkan untuk mengelak daripada menggunakan import relatif.

Struktur GOPATH

GOPATH ialah pembolehubah persekitaran yang menentukan direktori tempat Go mencari pakej. GOPATH lalai ditetapkan kepada direktori rumah anda ($HOME/go). Dalam kes anda, apabila projek itu terletak di $GOPATH/src/project, anda tidak boleh mengimport pakej tempatan kerana alat Go tidak dapat mengesannya dengan betul.

Pengesyoran

Untuk menyelesaikan isu ini, pertimbangkan perkara berikut:

  • Gunakan Laluan Import Mutlak: Daripada menggunakan laluan import relatif, gunakan laluan mutlak anda pakej tempatan. Dalam kes anda, pernyataan import untuk pakej model anda hendaklah:

    <code class="go">import "projpath/models"</code>

    Ganti projpath dengan laluan sebenar ke direktori projek.

  • Pertimbangkan Sistem Penjualan : Sistem vendor seperti Go Modules atau Go Vendoring boleh membantu mengurus kebergantungan dan menyokong laluan import relatif. Mereka membenarkan anda untuk menentukan dan menjejaki pakej tempatan dalam projek anda.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengimport Pakej Tempatan Dalam Projek GOPATH Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn