在我的Go项目中,我想将一些通用功能分解为Go模块,与主项目分开。为了配合go的未来,我正在GOPATH之外进行此操作。我不想在GitHub或其他任何地方发布该模块。
我将这个模块导入主项目的所有尝试导致:
cannot find module for path X
我已经go mod init X
在模块的文件夹中运行了。其go.mod
文件的内容是:
module X
构建或安装此模块似乎无济于事。我在中没有发现任何迹象$GOPATH/pgk/mod
。
我尝试了多种导入语句:
import "X"
import "../x"
(模块目录的相对路径)import "../x/X"
(目录+模块名称的路径)救命!
因此,您编写了一个Go“库”模块:
使用
replace
指令可以解决此问题。
给定模块名称“ X”,在主模块中添加以下行:
require "X" v0.0.0
replace "X" v0.0.0 => "{local path to the X module}"
该路径应指向模块的根目录,并且可以是绝对路径或相对路径。
要从模块 X 导入软件包 util : __
import "X/util"
(您不导入模块。您从模块导入包。)
Go的模块功能是为公开发布的模块设计的。通常,模块的名称既是其唯一标识符,又是其公共存储库的路径。当您的go.mod使用require
指令声明模块依赖关系时,Go会自动在该路径中查找并检索模块的指定版本。
(另请参阅“
Go模块”常见问题解答,我可以在本地文件系统上完全在VCS之外工作吗?)
例如,如果您的go.mod
文件包含require github.com/some/dependency v1.2.3
,Go将在该路径下从GitHub检索模块。但是,如果包含require X v0.0.0
,则“
X”不是实际路径,您将得到错误cannot find module for path X
。
该replace
指令允许您为给定的模块标识符和版本指定替换路径。您有很多原因要这样做,例如在将模块的更改推送到公共仓库之前测试它们。但您也可以使用它将模块标识符绑定到您不想发布的本地代码。
希望这可以帮助。
问题内容: 我正在python 2.7中开发自己的模块。它位于而不是或中。内部结构为: 包括课程。我遇到导入问题: 我没有将PythonPath设置为包括我的,因此,当server.http尝试包含client.PyCachedClient时,它将尝试从相对路径加载它并失败。我的问题是- 我应该如何以良好的pythonic方式设置所有路径/设置?我知道每次打开控制台并尝试运行服务器时都可以在she
本文向大家介绍python根据路径导入模块的方法,包括了python根据路径导入模块的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考。具体方法如下: 常规做法如下: 而要直接通过路径 使用时使用util.method,此时并没有定义method method = util.method后才可以直接用method 希望本文所述对大
项目目录映像 我正在尝试使用以下语法在我的react应用程序中导入firebase: 从.../Firebase/config导入{auth} 但我面临以下问题: ./src/Pages/Login/Login.js模块未找到:无法解决.../Firebase/config 这是我的配置文件 从“/firebase/app”导入*firebase/auth”作为firebase;导入“fireba
问题内容: 给定完整路径,如何加载Python模块?请注意,该文件可以在文件系统中的任何位置,因为它是配置选项。 问题答案: 对于Python 3.5+,请使用: 对于Python 3.3和3.4,请使用: (尽管在Python 3.4中已弃用此功能。) 对于Python 2,请使用: 编译后的Python文件和DLL具有等效的便捷功能。
在Spring中,可以在单独的模块中定义bean依赖项,然后在运行时通过解析这些依赖项。在Quarkus中有可能做类似的事情吗? 例如,多模块设置如下所示: 在Spring中,可以在模块中定义,该模块通过其当前上下文的在运行时解析具体的依赖关系,或,允许在测试时注入虚拟或测试依赖关系,还有生产人工制品中的真品。 例如,中的一个类需要一个的实例。的实现在或模块中定义。模块不直接依赖于或模块。 一些代
问题内容: 给定Python模块的完整路径,如何加载它?注意,该文件可以位于文件系统中的任何位置,因为它是一个配置选项。 问题答案: 对于Python 3.5+,请使用: 对于Python 3.3和3.4,请使用: (尽管在Python 3.4中已弃用此功能。) 对于Python 2,请使用: 编译后的Python文件和DLL具有等效的便捷功能。