怎么打包基于OpenStack-TaskFlow的Python程序?总是提示缺少各种包。

发布于 2022-09-04 19:52:43 字数 1099 浏览 27 评论 0

最近我开发了一个python程序,用到了OpenStack中的TaskFlow,然后我想把它打包成一个exe,遇到了问题。
现在一个最简单的example也不能打包,代码如下:

from taskflow import engines
from taskflow.patterns import linear_flow
from taskflow import task


class TaskA(task.Task):
    default_provides = 'a'

    def execute(self):
        print("Executing '%s'" % (self.name))
        return 'a'


class TaskB(task.Task):
    def execute(self, a):
        print("Executing '%s'" % (self.name))
        print("Got input '%s'" % (a))


print("Constructing...")
wf = linear_flow.Flow("pass-from-to")
wf.add(TaskA('a'), TaskB('b'))

print("Loading...")
e = engines.load(wf)

print("Compiling...")
e.compile()

print("Preparing...")
e.prepare()

print("Running...")
e.run()

print("Done...")

使用Pyinstaller打包后,运行是这样的,总是缺少什么东西,然后我把那些包手动包含在打包文件中,再运行会提示taskflow找不到引擎,这是因为原代码中e = engines.load(wf)这个实际上还有个默认参数,e = engines.load(wf,engine='default'),它是在运行时寻找引擎,因此也不知道如何打包才能正常运行。
n0r0q.jpg

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文