go / importer.Import在生产中返回错误“找不到进口”

我想构建一个API以返回包内的所有全局变量。 我使用 go / importer </ code>导入软件包。 它在我的本地计算机上运行良好,但是当我部署二进制文件时,它不起作用。 它说找不到导入</ code>。 仅供参考,我只部署了没有源代码的二进制文件。</ p>

这是示例代码</ p>

  defaultImporter:= importer.For(“  gc“,nil)
modelsPkg,错误:= defaultImporter.Import(” github.com/foo/bar/models“)
</ code> </ pre>

是否有任何导入方法 二进制文件中的软件包?</ p>

谢谢</ p>
</ div>

展开原文

原文

I want to build an API to return all of the global variables inside a package. I use go/importer to import the package. It works fine on my local machine, but when I deployed the binary, It is not working. It says can't find import. FYI, I only deployed the binary without the source code.

Here is the sample code

defaultImporter := importer.For("gc", nil)
modelsPkg, err := defaultImporter.Import("github.com/foo/bar/models")

Is there any way to import a package inside the binary ?

Thanks in advance

dtsps00544
dtsps00544 我有枚举列表定义为包内的const。我想有一个API可以返回在该包内定义的枚举列表。我不希望在我的处理程序中一个一个地写所有枚举,而是想拥有一些可以将包中所有const报废的代码。这就是为什么我尝试使用进口商
接近 2 年之前 回复
drpfu51608120170
drpfu51608120170 这似乎很可能是XY问题-您正在执行源代码分析,但又不想部署源代码?您实际上是想完成什么?
接近 2 年之前 回复
dongshuo1856
dongshuo1856 好的..感谢您的解释@mkopriva
接近 2 年之前 回复
douan1893
douan1893 stdlib中没有这样的东西。意识到您的要求后,您需要一个可以对二进制文件进行逆向工程的软件包,以检索源信息...您将可以更轻松地部署源。输入类型是一种接口,您可以实现自己的版本,例如,该版本可以代替在主机上查找源的版本,而可以从存储库中下载源。
接近 2 年之前 回复
duan35557593
duan35557593 是的。..是否还有其他软件包可以从二进制文件本身导入该软件包,而不是查找文件?实际上,我正在考虑使用代码生成来检索var,并将其写入生成的代码中。但是,如果有一些软件包可以从二进制文件本身导入该软件包,它将有所帮助
接近 2 年之前 回复
donglaoe2979
donglaoe2979 您需要使用二进制文件部署源文件。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问