子进程,Popen 在模块中运行命令

发布于 2024-10-17 19:28:40 字数 365 浏览 2 评论 0原文

我想从我的模块中调用二进制程序。我在子进程查找二进制文件时遇到问题。

所以我有

myModule/
-classWrappingBinary.py
-binary_file.out

,在 classWrappingBinary.py 中我有类似的东西

sbp.Popen(['./binary_file.out']

不起作用。那么如何才能成功调用Popen命令呢?我将通过导入模块来使用它,例如

import myModule
a = myModule.classWrappingBinary.MyClass()

i want to call a binary program from within my module. i am having problem with subprocess finding the binary.

so i have

myModule/
-classWrappingBinary.py
-binary_file.out

and in classWrappingBinary.py i have somthing like

sbp.Popen(['./binary_file.out']

which doesnt work. so how can i successfully call the Popen command? i am going to use it by importing the module like,

import myModule
a = myModule.classWrappingBinary.MyClass()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离不开的别离 2024-10-24 19:28:40

您可以查看变量 __file__ 并从中提取目录信息。最靠谱的方法是

name = os.path.join(os.path.dirname(__file__) or  ".", "binary_file.out")
subprocess.Popen(name)

You can look at the variable __file__ and extract the directory information from it. The most reliable way is

name = os.path.join(os.path.dirname(__file__) or  ".", "binary_file.out")
subprocess.Popen(name)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文