从“main”文件夹导入时Golang无效导入路径

时间:2017-09-08 10:37:38

标签: go import package atom-editor

在最近几天试图摆脱“无效的导入路径:”Atom First project / main / Extension“(build)”安装我的main.go文件时出错,但我一直无法找到错误背后的原因。

操作系统 - Windows 10

IDE - Atom

GOBIN - E:\ Github Repository \ Programming \ Golang \ bin

GOPATH - E:\ Github Repository \ Programming \ Golang

文件DIR-E:\ Github Repository \ Programming \ Golang \ src \ Atom First project \ main \ main.go

E:\ Github Repository \ Programming \ Golang \ src \ Atom First project \ main \ Extension / foo.go

main.go

package main

import (
    "Atom First project/main/Extension"
)

func main() {
    Extension.Extend()
}

foo.go

package Extension

import (
  "fmt"
)

func Extend(){
  fmt.Println("Hello from Extend func")
}

1 个答案:

答案 0 :(得分:2)

很简单:导入路径不能包含空格。 Spec: Import declarations:

  

实施限制:编译器可以仅使用属于Unicode's L,M,N,P和S一般类别(不带空格的图形字符)的字符将ImportPaths限制为非空字符串,也可以排除字符!“#$%&'()*,:;< =>?[] ^`{|}和Unicode替换字符U + FFFD。

只需将您的Atom First project文件夹重命名为例如atom-first-project,并更改导入声明。

import (
    "atom-first-project/main/Extension"
)

另请注意,程序包名称(通常是文件夹名称,但不一定是)必须是有效的Go identifierSpec: Package clause:

  

package子句开始每个源文件并定义文件所属的包。

PackageClause  = "package" PackageName .
PackageName    = identifier .