背景:
第三次碰见这个问题了...
环境:golang
两个项目A和B,运行项目A时,会引用B的一些配置文件,如下,两个并列项目:
项目A代码:
项目B文件:
在项目A的test目录下,运行:go run test.go 会出现下面报错
(base) deMacBook-Pro:test $ go run test.go
open fail err is : %v open ../awesomeProject2/config.txt: no such file or directory
(base) deMacBook-Pro:test $ pwd
/Users//feedsRec/awesomeProject1/temp/test
原因:
相对目录的问题。项目A中引用项目B中的文件,使用的是configPath = "../awesomeProject2/config.txt",这里的"../"是awesomeProject1的同级目录。我们运行go run test.go的上一级目录是temp,而非awesomeProject1的同级目录,因此找不到这个"../awesomeProject2/config.txt"文件而报错。
解决:
在项目A的第一个目录(使用"../awesomeProject2"能找到的那级目录)中运行go文件,如下:
(base) deMacBook-Pro:test $ cd ../../
(base) deMacBook-Pro:awesomeProject1 $ pwd
/Users//feedsRec/awesomeProject1
(base) deMacBook-Pro:awesomeProject1 $ go run temp/test/test.go
file detail: %v &{0xc000102120}
此处感谢同事大佬们,又提升了代码调试能力,哈哈哈