go - 无法从其他项目导入本地项目 : cannot find module providing package <package_name>

标签 go import goland

我有一个我正在做的项目,名为 project1 .
几个月前,我在 project2 工作。其中包含名为 engine 的包我想在project1里面使用它.
这些项目是本地的,所以我读了here如何导入本地项目并尝试过但收到错误:

Cannot resolve file `project2`

一件有趣的事情是,当我输入 project2 的名称时在 import(..)部分,Goland 将其识别为模块,但在我按下它后,我收到无法解决的错误。

使用 Goland,我可以选择运行 sync packages of 'project1'但是当我按下它时,我也收到了一个错误:
project1/pkg/utils imports
    project2: cannot find module providing package project2

我也尝试创建 vendor project1 中的文件夹并复制粘贴整个 project2vendor 下方文件夹,但它仍然没有帮助。

知道为什么它没有解决吗?

最佳答案

如果您的 $GOPATH 下有两个项目, 你可以看看这个example用于导入项目。

编辑:
如果您使用 go modules并且想要导入本地模块,那么您可以使用 replace指示。
所以,基本上你必须添加你的go.mod您的Project1这些行:

require /$module-name-project2/$package-name v0.0.0

replace $module-name-project2/$package-name => ../$localpath-to-project2

更多信息 here

一个简单的例子(我的两个项目都在 $GOPATH 之外并使用 go modules ):
  • Project1位于 .../go-experiments/project1
  • main.go :
    package main
    
    import "go-experiments/project2/greeting"
    
    func main() {
        println("How to greet?")
    
        greeting.English()
    }
    
    go.mod :
    module go-experiments/project1
    
    require go-experiments/project2/greeting v0.0.0
    
    replace go-experiments/project2/greeting => ../project2
    
    go 1.14
    
  • Project2位于 .../go-experiments/project2greeter.go :
  • package greeting
    
    func English() {
       println("hi, i am boo")
    }
    
    go.mod :
    module go-experiments/project2
    
    go 1.14
    

    关于go - 无法从其他项目导入本地项目 : cannot find module providing package <package_name>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61302548/

    相关文章:

    go - 检查接口(interface)的相等性{}

    function - 如何在不调用函数的情况下判断类型的基函数是否已在 Go 中被覆盖?

    go - 如何修复 golang 参数过多的错误

    JAVA:如何在 Netbeans 中使用导入的库

    amazon-web-services - 使用 aws-vault 运行 Golang

    go - 限制运行的并发任务数

    python - 与 Python 中的导入进一步混淆

    python - Azure Web作业导入错误: No module named email_validator

    goland - 在 Goland 中快速访问对象类型定义的方法

    intellij-idea - goland/clion/idea 在 macos 13 ventura 中意外退出