无法导入位于同一目录中的软件包

时间:2018-11-08 21:08:02

标签: go

我要导入当前文件或打包位于同一项目中的其他文件 在目录中。我正在这样做:

import (

// "./dir1"
  "/Users/my_name/my_project/dir1"

)

它们都不起作用

  1) Cloning into '/Users/my_name/go/src/github.com/github_username/github_project'...
  fatal: could not read Username for 'https://github.com': terminal prompts disabled


  2) package /Users/my_name/my_project/dir1: unrecognized import path "/Users/my_name/my_project/dir1" (import path does not begin with hostname)

如何导入当前项目中的目录?

3 个答案:

答案 0 :(得分:1)

导入路径不是直接的路径。它们相对于GOPATH(通过执行echo $GOPATH找到)。

这意味着go对于存储代码的位置也很谨慎。因此,您将不得不将代码移至$GOPATH/src/my_name/my_project。如果您将代码托管在类似github的地方,则将其移至$GOPATH/src/github.com/my_github_name/my_project

然后,当您导入子包时:

import "github.com/my_github_name/my_project"

请注意,这不是绝对路径。

答案 1 :(得分:0)

words = [['CP', '0.50', '96'], ['HR', '1.00', '93'], ['HR', '1.00', '85'], ['HR', '1.00', '99'], ['CP', '0.75', '100'], ['CP', '1.00', '94'], ['HR', '1.00', '88'], ['CP', '1.00', '92']] [x[0] for x in words] 重命名为与该目录中的包相同的名称,然后可以使用以下命令导入它:

dir1

但是不建议这样做,请改用GOPATH。如果您确实不想使用GOPATH,则可以在Go 1.11中使用Modules(但仍处于试验阶段)。

答案 2 :(得分:0)

确保您的项目位于GOPATH的 go / src 文件夹中(推荐方式)。然后像这样导入

package logic

import (
    "project_name/folder_name"
)