问题标签 [pyinstaller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4025 浏览

python - 加速编译的python程序?

我有一个相当“繁重”的 python 程序,我想将其编译为 exe。

该程序有相当数量的导入,但使用 PyQT4 框架,我在启动画面可见时加载这些导入。
我使用 pyinstaller(在 cmd 中)将此程序编译为单个 .exe 文件:

但是,即使启动画面设置为在导入大量模块时显示(特别是包括 sympy),并且即使在通过 python 运行时它会立即显示并在足够的时间范围内显示;
运行生成的 .exe 会导致在启动画面显示之前出现严重延迟,这只会在整个程序加载之前显示很短的时间。

我的怀疑是从 .pyw 编译到 .exe 加快了实际的“代码”(因此为什么启动画面更短),但减慢了程序执行的实际“开始”。

我该如何解决这个问题,以使 .exe 不会“启动得这么慢”?

(我怀疑编译到 --onefile 贡献很大,但我需要 .exe 文件是所有 .dll 中的一个文件夹,我不知道如何让 pyinstaller 做到这一点)

谢谢!


Windows 7
python 2.7.2
pyinstaller
PyQt4

0 投票
1 回答
808 浏览

python - 即使在键盘中断后,pyinstaller 使 .exe 自行重新启动的原因可能是什么?

我无意中创造了科学怪人。

一切都在解释器中运行良好,但在运行python pyinstaller.py --onefile myFile.py生成 .exe 后,运行时它开始出现奇怪的行为。它似乎随机调用它的main()函数——即使在键盘中断爆发后,它也会自我复活。

代码如下所示:

非常简单的东西,就像我说的,它在解释器中运行良好。它所做的只是在屏幕上搜索更改,然后为快照添加时间戳。

什么会导致随机开火main()?它有时甚至在键盘中断之前就会这样做。

0 投票
1 回答
2546 浏览

pyinstaller - 当我运行使用 pyinstaller 部署的程序时出现“没有名为 atexit 的模块”

首先,本机运行 Fedora 13,PyInstaller 版本为 1.5.1

我在生成规范时确实使用了 --onefile 。

从 Python 解释器中运行“import atexit”没有任何错误。

这是运行二进制文件的回溯:

0 投票
1 回答
322 浏览

python - python初学者:导入mysite.manage失败?

免责声明:我是 python 和 django 的新手,但有 Drupal 编程经验。我使用的是 Windows 7(Windows XP 上的问题相同)

在 python 2.7 和 Django-1.3.1 上,我成功创建了一个默认项目

现在,我需要按照此处(http://www.pyinstaller.org/wiki/Recipe/DjangoApplication)的说明在位于 djsite 父目录的 bootstrap.py 文件中“引导”djsite.manage,如下所示:

然而,一旦编译器看到:

我明白了:“错误:在包含'C:\Python27\Lib\site-packages\djsite\manage.pyc'的目录中找不到文件'settings.py'。看来你已经自定义了东西.. . 你必须运行 django-admin.py,将它传递给你的设置模块。” 而且,在这种情况下,我不知道如何遵循错误的建议。

但是,如果我改为在 bootstrap.py 中发出以下命令:

该脚本工作正常,但它破坏了 Pyinstaller(我已经在该软件的邮件列表(http://groups.google.com/group/pyinstaller/browse_thread/thread/174a72e26c26a44c)上问过这个问题。即使我添加了路径到我的 PATH 变量中的 djsite,我得到了同样的错误。

所以我的问题是:为什么用这种方法导入 manage.py 模块会失败,我该如何继续?谢谢!

0 投票
7 回答
53868 浏览

python - 使用 PyInstaller 创建的应用程序启动缓慢

我有一个用 Python 编写并使用 PyInstaller“编译”的应用程序。它还使用 PyQt 作为 GUI 框架。

在主窗口加载并显示之前,运行此应用程序有大约 10 秒的延迟。据我所知,这不是由于我的代码运行缓慢。相反,我怀疑这是由于 Python 运行时初始化造成的。

问题是这个应用程序是使用自定义启动器/任务栏应用程序启动的。用户将单击按钮以启动应用程序,看到没有任何反应,然后单击另一个应用程序的其他位置。当我的应用程序显示它的窗口时,由于 SetForegroundWindow 的规则,它无法进入前台。

我可以访问 PyInstaller win32 加载程序、Python 代码甚至启动器代码的源代码。

我的问题是:

  • 我怎样才能让这个应用程序启动得更快?

  • 如何衡量流程生命周期的前几秒所花费的时间?

  • 在显示第一个窗口之前减少时间的普遍接受的技术是什么?

我想避免添加启动画面有两个原因 - 一,我希望它不会有帮助(开销是在 Python 代码运行之前),二,我只是不喜欢启动画面 :)

如果需要,我可能会编辑 PyInstaller 加载程序存根以创建一个窗口,但这是我不想采取的另一条路线。

0 投票
1 回答
22651 浏览

python - PyInstaller:IOError:[Errno 2] 没有这样的文件或目录:

我正在尝试使用带有科学、MMTK 等模块的 pyinstaller 编译 python 脚本。Pyinstaller 无法包含一些 .pyd 模块,因此我将它们手动复制到 dist 文件夹中。当我执行编译的 exe 时,它​​给了我以下错误:-

顺便说一句,我可以在该位置看到 outPYZ1.pyz 文件。任何的想法?

0 投票
0 回答
1246 浏览

python - Pyinstaller 不适用于 matplotlib

我正在尝试使用 pyinstaller 在 matplotlib 上创建一个简单绘图的可执行文件。但是,我似乎无法正确处理。这是我的代码,

这就是它的外观![在此处输入图像描述][1]

这是我使用生成的 exe pyinstaller 时得到的,![在此处输入图像描述][2]

看起来我缺少一个工具栏!

这是创建的目录 pyinstaller 的快照,

请帮忙。我在这方面已经有一段时间了。pyinstaller 可能忘记了一些 DLL?

0 投票
0 回答
512 浏览

python - 消除对安装或如何在 OSX 10.7.3 Lion 上安装 libsndfile 的困惑迷雾?

这是一篇很长的文章,所以我在顶部放了一个简短的总结。

Lion 已经推出了足够长的时间,我终于可以安装大多数 Python 库等。我需要使用二进制安装。当涉及到 libsndfile 时,我被卡住了。安装 libsndfile 的最佳方法是什么,如果它相关,其余的东西是什么?

如果您需要更多详细信息,请继续阅读...我正在开发一个使用以下内容的程序,最初在 OSX 10.7.3 下开发,并且还需要能够在 WinXp 和 Win7 上构建跨平台:

我在我的 OSX 开发机器上安装了所有这些,并且一切都在调试器下工作。当我尝试使用 pyinstaller 构建时遇到了麻烦,因为我的安装是二进制安装的历史大杂烩,从源代码构建、easy_install、pip 和 HomeBrew。从无用的 MacPorts 安装中提取了几个文件。一些库是在我运行 Lion 测试版时安装的,当时很难让某些东西在 Lion 下运行。

我的想法是,Lion 已经出现了足够长的时间,应该可以进行更清洁的安装,这应该会简化未来的工作,尤其是使用 pyinstaller。我创建了一个新的 Lion VM 并执行了以下操作:

到目前为止,一切都很好,尽管我不确定 libsamplerate 的 i386 与 x86_64 架构;我可能需要返回并为每个架构安装一次,然后创建一个通用二进制文件。

接下来是 libsndfile,这是 scikits.audiolab 所需的。这很麻烦,因为我发现了一个不断扩展的依赖网络:

Gettext 很痛苦,因为我得到的 stpncpy 错误已经发布在几个地方,但是找到真正解决问题的补丁有点乏味。

即使在显然构建了我列出的所有依赖项之后,libsndfile 仍然不会没有错误地构建并且我被卡住了。

看看我花了多少时间未能让 libsndfile 正常工作,我开始质疑基本方法。我似乎没有能力找出所有的错误并在有限的时间内做出适当的改变。

我发现自己回到了包管理器路径...easy_install 到 pip 和 HomeBrew;但有些事情似乎只有 MacPorts 可以处理,但总体而言,MacPorts 以我无法接受的方式与 Python 纠缠在一起,而且 pyinstaller 讨厌 MacPorts。如果我这样做,我可能会或可能不会让事情再次工作,但即使我这样做,我担心我不会知道实际需要哪些部分或能够随着时间的推移维护开发环境。

0 投票
0 回答
1256 浏览

python - Windows 服务代码在使用 Pywin32 / PyInstaller 时出现线程错误

使用从 pyinstaller 生成的 python exe 来创建 Windows 服务时出现错误。该错误消息可能是无害的,并且似乎不会影响服务的运行,但我不确定幕后是否还有其他问题。我正在使用 pywin32 库将应用程序安装为 Windows 服务。我应该注意,从 python 脚本本身安装时,我没有收到此错误,使用 pywin32 中的 PythonService.exe,仅来自使用 pyinstaller 生成的可执行文件。

使用 pyinstaller 时,我可以从我的 windows 服务代码生成 exe 并安装它,没问题。我也可以启动服务,没问题。我什至可以停止服务并且应用程序似乎正常关闭。但是,一旦我启动了停止,我在运行 win32traceutil.py 时在控制台上收到以下错误:

没有错误记录到事件日志中。我已经能够将其追溯到 python 日志记录模块。简单地导入日志模块似乎会导致我的问题。注释掉导入可以消除错误。对我来说似乎很清楚这是导致问题的原因,但我觉得奇怪的是 pyinstaller 会遇到标准库中的模块问题。有没有其他人遇到过这个?

我正在运行 Python 2.6.6、Pyinstaller 1.5.1、Pywin32 的 Build 217。我在 Windows XP 上。

以及我的代码的精简版本:

0 投票
4 回答
17488 浏览

python - 在 python 脚本中嵌入图标

有没有人知道在 Python 脚本中嵌入图标的方法,这样当我创建独立的可执行文件(使用 pyinstaller)时,我不需要包含 .ico 文件?我知道 py2exe 可以做到这一点,但就我而言,我必须使用 Pyinstaller,因为我没有成功使用前者。我正在使用 Tkinter。

我知道,iconbitmap(iconName.ico)但如果我想让 onefile 可执行,那它就行不通了。