Golang中import "fmt"是一个程序而非可导入包的问题解决
Golang中import "fmt"是一个程序而非可导入包的问题解决 大家好,我正在尝试运行一段非常简单的代码,因为我对Go语言还比较陌生。但我不明白为什么当我尝试运行它时,命令提示符会显示以下信息:
import “fmt” 是一个程序,而不是一个可导入的包,包 command-line-arguments 导入 fmt:找不到包
有人能帮忙吗?非常感谢。
我刚刚按照您的指示解决了这个问题,非常感谢!!!
更多关于Golang中import "fmt"是一个程序而非可导入包的问题解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你的代码是什么?你尝试如何运行它?你的Go版本是多少?操作系统是什么?
以下是我的代码:
package main
import "fmt"
func main() {
var x = 10
var y = 15
sum := x + y
fmt.Println("La somma è ", sum)
}
我当前所在的目录是:C:\Users\Ilenia\go\src
我尝试使用 go run 代码文件名.go 来运行它。
我的操作系统是 Windows,Go 的版本是:go1.17.5 windows/amd64
Go 首先在 GOROOT/src 目录中查找包目录,如果找不到该包,则会去 GOPATH/src 中查找。由于 fmt 包是 Go 标准库的一部分,位于 GOROOT/src 中,因此会从那里导入。但是,由于 Go 在 GOROOT 中找不到 greet 包,它将在 GOPATH/src 中查找,而我们在那里有这个包。
// 我发现了这个,我想我犯了一个错误,因为我把 goroot 和 gopath 放在了同一个目录下,但我该如何解决这个问题呢?
- 在 Go 1.17 中,你不再需要遵循
GOPATH工作区约定,只需使用模块即可。 - 确保
GOROOT指向其原始指向的位置。我不确定在 Windows 上应该如何设置,但在我的 NixOS 系统中,它指向“安装”目录。
// 代码示例:GOROOT 环境变量
package main
import (
"fmt"
"os"
)
func main() {
goroot := os.Getenv("GOROOT")
fmt.Printf("GOROOT 环境变量值: %s\n", goroot)
}
这是一个常见的Go环境配置问题。错误信息表明Go工具链无法找到标准库中的fmt包,通常是因为GOROOT环境变量没有正确设置。
首先,请检查你的Go安装和环境变量:
// 你可以通过运行以下命令来检查Go环境
// 在命令行中执行:
// go env GOROOT
// go env GOPATH
// 如果GOROOT没有设置或设置错误,需要正确配置
如果你在Windows系统上,可以这样设置环境变量:
# 设置GOROOT指向你的Go安装目录
set GOROOT=C:\Go
set PATH=%GOROOT%\bin;%PATH%
在Linux或macOS上:
# 在~/.bashrc或~/.zshrc中添加
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
然后验证fmt包是否存在于标准库路径中:
// 检查$GOROOT/src/fmt目录是否存在
// 标准库的fmt包应该位于$GOROOT/src/fmt/
另一个可能的问题是Go模块初始化。确保你在正确的目录中运行代码:
# 初始化Go模块(如果你的代码不在GOPATH中)
go mod init your-module-name
最后,这是一个有效的示例代码,应该能正常工作:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
运行这个程序:
go run main.go
如果问题仍然存在,请检查:
- Go是否安装正确(运行
go version) GOROOT环境变量是否指向正确的安装目录- 文件扩展名是否为
.go - 是否在正确的目录中执行命令

