登录
首页 >  Golang >  Go问答

在 Go 项目中执行 python 脚本(使用相对于项目文件夹的脚本路径)

来源:stackoverflow

时间:2024-03-03 21:15:29 132浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《在 Go 项目中执行 python 脚本(使用相对于项目文件夹的脚本路径)》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我正在尝试在 Go 中执行 python 脚本。然而,在我看来,没有任何内容解释如何使用项目/相对路径执行脚本。我的代码位于 GitHub 上,并且不需要脚本的完整路径(“home/user/Documents/projectFolder/script.py)

相反,我需要一个项目/相对路径(“/script.py”或等效路径)

最终,如何执行 script.py,而不必在特定目录中查找它?

注意:我的项目位于“home/user/Documents/project”

编辑:更改了“最终”部分


解决方案


由于 Go 是一种编译语言,(通常)生成单个可执行文件,因此项目结构在编译时几乎丢失。因此,项目相对路径在运行时没有意义。您需要另一种方式来查找脚本(以及将其发送给执行程序的脚本)。

实现此目的的一种方法是要求您的可执行文件和脚本位于您已知的相对位置(例如,scripts 文件夹和 bin 文件夹位于同一目录中)。然后您可以输入 os.Args[0] 获取可执行文件的路径,然后您可以使用该路径构建脚本的路径。要构建路径,您可以查看 filepath 包。

编辑:阅读您更新的问题后,我找到了 packr 项目,它似乎提供了一种在二进制文件中包含静态文件的方法。我从未使用过该项目,也不知道如何准确使用它,但看来您应该能够将脚本文件存储在二进制文件中,然后以某种方式将脚本传递给 python。例如,您可以将其写入临时文件或使用 -c 参数将其传递给 python。此方法将要求您使用 packr 命令行工具构建项目。另外,如果您包含大文件,您的二进制文件的大小也会增加。

今天关于《在 Go 项目中执行 python 脚本(使用相对于项目文件夹的脚本路径)》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>