在Go中导入本地模块[已关闭]

x8diyxa7  于 2023-04-18  发布在  Go
关注(0)|答案(1)|浏览(174)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由一个错字或一个无法再复制的问题引起的。虽然类似的问题可能是on-topic在这里,但这个问题的解决方式不太可能帮助未来的读者。
5天前关闭。
Improve this question
我在将本地模块导入独立的Go文件时遇到了问题。
项目结构:

  • ./folder/module/thism.go(package thism)
  • ./folder/module/go.mod
  • ./folder/anothermodule/thism2.go(package main;可运行)
  • ./文件夹/另一个模块/go.mod
  • ./folder/file.go(package main;可运行;成功导入另一个模块,但不是模块)

此设置适用于除file以外的所有内容。go
我甚至尝试过这样的东西:

  • ./folder/anothermodule/thism2.go(package main;可运行)
  • ./folder/anothermodule/go.mod
  • ./folder/thism.go(package main;no func main)
  • ./folder/file.go(package main;可运行;成功导入另一个模块,但不是模块)

此设置适用于file.go,但会完全崩溃thism2.go(大量未定义的变量9)
问题是,我正在运行thism2.go(go run .),并在其代码中执行file.go(通过exec.Command)。
我开始认为这个设置无论如何都会失败,因为thism2.go在它的“命名空间”内运行file.go。
更新:当我从thism.go粘贴代码到file.go时-一切正常
更新2:我以exec.Command(“go”,“run”,path)的形式执行file.go;错误在第一个树-无法导入thism/m(没有必要的模块提供包“thism/m”);第二次设置时出错-thism2.go中有很多未定义的内容(thism2.go使用了另一个模块中定义的很多定义和函数。

mctunoxg

mctunoxg1#

好的,我想我明白了。不要在exec.start()中使用modules,因为它会在module mod中打开它。相反,使用packages system。
不要忘记在项目目录中执行此操作:

go env -w GO111MODULE=off

相关问题