回答

收藏

Go:非本地包中的本地导入

技术问答 技术问答 283 人阅读 | 0 人回复 | 2023-09-11

我有以下文件结构:
( b: T1 j9 `2 I" o- j
    .├── bin│   └── hello├── pkg└── src    └── jacob.uk.com        ├── greeting        │   └── greeting.go        └── helloworld.go5 directories,3 files
    : [3 S# {. M1 ~' l8 r4 U
使用以下 GOPATH4 s- K2 ~% D+ P* ~* a! D, ]
    /Users/clarkj84/Desktop/LearningGo7 p0 Y) E5 l7 I. V# E- B
在文件夹/usr/local/go/bin/go install jacob.uk.com内执行后src,我收到错误local import "./greeting" in non-local package4 q9 s8 f! Y+ m1 F# _9 l
helloworld.go:
. `: I! S8 S* w

    " y4 Q! b" z6 J2 h
  • package main;import "./greeting"func main()code]               
    ; h+ u5 t6 t5 L% X! G* t+ A8 F
  •     解决方案:                                                               $ z& Q& L: ^5 g; A$ L
  •                                                                 将非本地包指定为go install. 如果想在当地引进工作,首先要把工作目录改成src/jacob.uk.com然后执行go install(不指定包)。
    1 N0 `; c  c+ T$ I9 e
  • 当然,具有helloworld.go你会得到一个编译错误:imported and not used。但是一旦你使用了导入greeting它应该能够编译包中的东西。
    ( U4 H+ I3 B/ s( F& s& }! p8 }6 G
  • 但是你根本不应该使用本地导入。而是写:[code]import "jacob.uk.com/greeting"
    - E' B' y6 y3 u" B: a, E" ^7 C
您将能够从任何地方编译/操作/安装它。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则