首页/新闻资讯/正文详情

Go 本地包无法正常导入和运行的解决办法

发布时间:2026/9/24 13:56:48 来源:云帆数科 栏目:资讯中心
Go 本地包无法正常导入和运行的解决办法
问题如题本地新建一个pack文件夹简单的创了几个demo程序准备学习Go的本地包导入发现总失败一番折腾后总算解决并长经验了故记录下。问题太多有的问题还很低级但作为初学者的我直面并将其捋清是我必须要做的。背景项目中有一个入口程序和一个自定义包文件79_pack/ ├── 入口文件.go └── pack1.gopack1.go内容如下packagepack1varPack1Int42varPack1Float3.14funcReturnStr()string{returnHello World!}入口程序尝试导入并使用 pack1packagemainimport(fmt./pack1)funcmain(){test1:pack1.ReturnStr()fmt.Printf(ReturnStr from package1: %s\n,test1)fmt.Printf(Integer from package1: %d\n,pack1.Pack1Int)fmt.Printf(Float from package1: %f\n,pack1.Pack1Float)test2:ReturnStr()fmt.Printf(Float from package1: %f\n,Pack1Float)}go run时报go: cannot find main module,。原因1、不同包的文件放在了同一个目录入口文件属于 package mainpack1.go 属于package pack1Go 通常要求一个目录只包含一个包因此 main 和 pack1 应分别放在不同目录中。2、导入路径对应的是目录入口文件里的导入语句import “./pack1” 表示导入当前目录下的 pack1 子目录而不是导入 pack1.go 文件。而当前只有 pack1.go 文件并不存在 pack1 目录。3、模块模式不支持相对导入现代 Go 项目通常使用模块模式。模块模式下不能使用import “./pack1”应使用完整的模块路径import “example.com/packdemo/pack1”4、点导入和普通调用方式混用点导入写法import . “example.com/packdemo/pack1”使用点导入后应直接调用ReturnStr()Pack1IntPack1Float不能再使用pack1.ReturnStr()5、局部变量没有使用下面的变量声明后没有被使用test2 : ReturnStr()Go 不允许存在未使用的局部变量因此也会导致编译失败。解决步骤第一步为自定义包创建目录执行命令以调整目录结构$cdxxx/79_pack/ $mkdirpack1 $mvpack1.go pack1/pack1.go 79_pack/ ├── 入口文件.go └── pack1/ └── pack1.go第二步初始化 Go 模块在项目根目录执行以生成go.mod$cdxxx/79_pack/ $ go mod init golearning/79_pack golearning/79_pack 可调整成自己有意义的名称生成的 go.mod 内容如截图所示。第三步使用模块路径导入包建议使用普通导入方式也可以调整成点导入将入口程序修改为packagemainimport(fmtgolearning/79_pack/pack1)// pack1为本地包.go里定义的package名funcmain(){test1:pack1.ReturnStr()fmt.Printf(ReturnStr from package1: %s\n,test1)fmt.Printf(Integer from package1: %d\n,pack1.Pack1Int)fmt.Printf(Float from package1: %f\n,pack1.Pack1Float)}第四步格式化代码可忽略执行命令$ cd xxx/79_pack/$gofmt./...第五步运行程序在包含 go.mod 的项目根目录执行$ cd xxx/79_pack/$gorun.至此一个简单的本地包导入问题得以解决。

相关推荐

create-voltagent-app 演进全解:从交互式脚手架到开箱即用的 VoltAgent 工程化模板
create-voltagent-app 演进全解:从交互式脚手架到开箱即用的 VoltAgent 工程化模板

人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆 【免费下载链接】voltagent AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework 项目地址: https://gitcode.com/gh_mirrors/vo/voltagent 点击查看 免费下载 本… · 2026/9/24 13:56:42

用 Phoenix 查询 AI 应用总运行成本:TRAIL 基准任务 total-cost 深度解析
用 Phoenix 查询 AI 应用总运行成本:TRAIL 基准任务 total-cost 深度解析

可观测性AI 评测LLMOpsAI 应用人工智能 【免费下载链接】phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix 点击查看 免费下载 导读 本文以 Phoenix 开源仓库中 trail-benchmark-dev 基准测试套件的 total… · 2026/9/24 13:56:41

使用 Skill Seekers 为 Cline 生成 Django 开发规则:从文档抓取到 MCP 动态检索的完整实战指南
使用 Skill Seekers 为 Cline 生成 Django 开发规则:从文档抓取到 MCP 动态检索的完整实战指南

人工智能AI 应用AI 技能RAGMCP 服务网页爬虫 【免费下载链接】Skill_Seekers Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection 项目地址: https://gitcode.com/gh_mirrors/sk/Skill_Seeke… · 2026/9/24 13:56:28

waifu2x-GUI 视频超分工具实战指南:Paper2GUI 低显存动漫图片与视频放大方案
waifu2x-GUI 视频超分工具实战指南:Paper2GUI 低显存动漫图片与视频放大方案

人工智能AI 应用桌面应用 【免费下载链接】paper2gui Convert AI papers to GUI,Make it easy and convenient for everyone to use artificial intelligence technology。让每个人都简单方便的使用前沿人工智能技术 项目地址: https://gitcode.com/gh_m… · 2026/9/24 14:53:55

Reactive Resume:可以自托管的免费开源简历生成器
Reactive Resume:可以自托管的免费开源简历生成器

Reactive Resume:可以自托管的免费开源简历生成器 【免费下载链接】reactive-resume A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today! 项目地址:… · 2026/9/24 14:53:55

PaddleSpeech WaveRNN 声码器模块全解析:模型架构、配置参数与训练推理实战
PaddleSpeech WaveRNN 声码器模块全解析:模型架构、配置参数与训练推理实战

PaddleSpeech WaveRNN 声码器模块全解析:模型架构、配置参数与训练推理实战 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speak… · 2026/9/24 14:53:55

SwiftPM 5.5 Release Notes 深度解析:Package Collections、可执行目标测试与 Manifest API 增强
SwiftPM 5.5 Release Notes 深度解析:Package Collections、可执行目标测试与 Manifest API 增强

开发工具构建工具 【免费下载链接】swift-package-manager The Package Manager for the Swift Programming Language 项目地址: https://gitcode.com/gh_mirrors/sw/swift-package-manager 点击查看 免费下载 本指南以 Swift 包管理器(SwiftPM&#xf… · 2026/9/24 14:53:55

django-allauth Frontier 社交登录集成指南:OAuth2 客户端注册、Django 配置与源码原理
django-allauth Frontier 社交登录集成指南:OAuth2 客户端注册、Django 配置与源码原理

后端认证鉴权身份认证 【免费下载链接】django-allauth Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication. 🔁 Mirror of https://codeberg.org/allauth… · 2026/9/24 14:53:55

IronClaw 渐进式工具披露:tool_search 命名空间目录头的设计与实现
IronClaw 渐进式工具披露:tool_search 命名空间目录头的设计与实现

IronClaw 渐进式工具披露:tool_search 命名空间目录头的设计与实现 【免费下载链接】ironclaw IronClaw is an Agent OS focused on privacy, security and extensibility 项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw 导读 本文围绕 IronClaw A… · 2026/9/24 14:53:49

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码