我的$ GOPATH是
"/Users/peter/goworkspace"
我当前的golang版本:
go version go1.6 darwin/amd64
我在这个工作区下有多个golang项目,所以这是目录的结构
+/goworkspace
+---/bin
+---/pkg
+---/src
+---/project1
+---package1
+---file1.go
+---file2.go
+---file3.go
+---package2
+---package3
+---main.go
+---/project2
+---/project3
在proj1的main.go中,我将使用该项目下其他软件包的导入,如下所示:
import(
"./package1"
"./package2"
"./package3"
)
但是,当我运行“ go build”时,我一直在收到错误消息:
“ 无法加载包:非本地包中的本地导入“ ../package”
如果我不想使用相对的包路径,例如使用它:
import(
"project1/package1"
"project1/package2"
"project1/package3"
)
然后一切都会正常。
如果使用相对包路径,我的代码有什么问题?
如果将来将project1的名称更改为例如projecet1v2,则导入软件包的最佳实践是什么?
那我需要手动更新导入的软件包的名称吗?
规则1:请勿使用相对进口。这(部分)是您遇到问题的原因。阅读以下内容:https
:
//golang.org/doc/code.html#Library
使用完全限定的导入路径(如您所示):
import(
"project1/package1"
"project1/package2"
"project1/package3"
// Or ideally, so others can access it in the future:
"github.com/<yourusername>/project1/package4"
)
如果出于某种原因要对软件包进行版本控制,则可以:
嗨,有没有一种方法,我可以重命名的包名称使用这种格式 而不是仅仅 我尝试使用我想要的包名称,但它一直得到 或com+最后一个字后的最后一个“。 我这样做的原因是,我有一个需要一个包名,而我在该库中设置的包名是固定的,我不能更改它 对不起,我的英语不好
问题内容: 从http://cs-fundamentals.com/tech-interview/java/which-java-package-is- imported-by-default.php 在每个Java程序中,可以有一个未命名的程序包,它只是一个没有名称的程序包。如果在编写类定义时省略了package语句,则将类名放入默认包中,该包没有名称。Java编译器会自动导入此软件包。 真的吗
可能的重复: 当存在同名的本地模块时,如何访问Python中的标准库模块? 我使用的是Python2.6。 在myscript中,我有: 由于Python的相对导入机制,import json并不像我想要的那样导入内置库,而是将我的自定义json包导入到当前名称空间中。 在这种情况下,有没有一种方法可以禁用Python中的相对导入,或者至少有一种黑客可以避免它?否则,我将不得不将我的包重命名为其他
python 3.7.7,并在python 3.6.0上试用 我正在使用Django服务器,在我的views.py中 我正试着在探测器里得到我的函数。 我,我把我的探测器文件作为一个包返回到一个文件中, 我阅读了关于这个问题的所有stackoverflow问题。
问题内容: 我在用Maven或Eclipse编译一些Scala时遇到问题,我尝试从Java jar导入一个包含名称空间和同名类的类。 我可以用编译。 例如,Java项目(jar)包含: 编译器抱怨: 在Scala 2.9.0.1(和)中使用Maven 3.0.03 / Eclipse 3.7.1 。 我遇到问题的jar是-它肯定包含几个实例,其中存在同名的名称空间和对象。 我正在尝试在Scala中
我有一个像这样的文件结构 在家庭作业1的主要部分。是的,我想做什么 这样我就不必为我使用的每个任务重写这个算法。但我得到的错误"父模块"未加载,不能执行相对导入".我做错了什么?