gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:14:34 30 4
gpt4 key购买 nike

我有一个我正在做的项目,名为 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/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com