首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使pubsub与pyinstaller一起工作?

如何使pubsub与pyinstaller一起工作?
EN

Stack Overflow用户
提问于 2012-09-25 18:41:27
回答 2查看 1.4K关注 0票数 1

我正在尝试使用pyinstaller从我的python代码构建一个exe。我正在使用的模块之一是pubsub (pypubsub )。它曾经是wxpython的一部分)。当我试图运行exe时,我会遇到错误。它抱怨"ImportError:没有名为listenerimpl的模块“。

我看过一些关于让wx.lib.pubsub工作的文章(它已经知道了pyinstaller的问题)。我尝试了那些文章中提出的解决方案(稍微修改了一下,说明它不再是wx的一部分),但没有任何进展。

我可以通过将路径添加到我的规范文件中用于分析的文件列表( kwargs one)中,以克服初始的"ImportError: No模块名为listenerimpl“错误,但随后在导入"publisher”时又遇到了进一步的错误。这个错误不是通过在spec文件中添加它的路径来修正的。

我认为解决方案不应该包括在我的规范文件中添加到listenerimpl.py的路径.但我不知道怎样才能让这件事顺利进行。

额外信息

  • 使用公开版本: 3.1.1b1.201005.r243
  • 使用pyinstaller版本: 2.0
  • 平台: win7
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-26 00:10:45

已解决了pubsub问题(尽管exe仍未运行)。

因此,如果您查看注释这里 (特别是sebastian.hilbert的注释#15 ),它主要是通过一些调整来解决问题。

必要的调整。

  1. 将钩子文件上的名称更改为钩子-pubsub.core.py和钩子-pubsub.setuparg1.py。
  2. 在这些文件的内部,您应该去掉对wx的引用。
  3. 启用钩子文件。你可以用两种方法中的一种。简单的方法是将这些新的钩子文件放到' pyinstaller -2.0\PyInstaller\ hooks‘中,这是pyinstaller默认查找钩子的地方。要做到这一点,最好的方法是将这些钩子放入自己的文件夹中,并将该文件夹作为钩子路径添加到规范文件中。

注:对我来说,不清楚如何添加一个妓女路径。在您的文件中,在对分析的调用中,有一个钩子路径arg。它要的是一个列表而不是一个字符串。所以你想要做一些类似于钩子路径=‘path2 1’,‘path2 2’之类的事情。

NB2:另外,如果您请求"path.dirname(path.abspath(__file__))“,您将得到pyinstaller的目录,而不是您的规范文件所在的位置。

票数 2
EN

Stack Overflow用户

发布于 2019-06-11 18:53:22

对于那些像我这样晚来的人,有一个新的推荐程序。

  1. 我建议使用奥立佛PyPubSub。对于Python2.7,请使用他的3.4.2版本。确保您只使用这个PubSub。这意味着如果您的env/lib/站点中还有其他PubSub包--不包括与wxPython捆绑的包--您会想要摆脱它们。它们会带来问题。
  2. 尽管您可能已经阅读了一些内容,但不要使用from pubsub import setupkwargs
  3. 不要向PyInstaller添加任何新的钩子。他们已经搞定了。

就这样。你的任务完成了。

运行PyInstaller。检查构建中的任何错误。希望PubSub不会成为其中之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12589150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档