问题标签 [py2exe]

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 投票
3 回答
3175 浏览

python - Py2exe:在 library.zip 或 exe 文件本身中嵌入静态文件,并在运行时透明地访问它们

有没有办法让 py2exe 在 library.zip 和/或 exe 文件本身(zipfile=None)中嵌入静态文件(和/或静态文件的子目录),然后在运行时从代码中透明地访问这些嵌入的静态文件?

谢谢你,马尔科姆

0 投票
3 回答
10492 浏览

python - Py2exe:编译没有 GUI 界面的 Web 服务器时是否需要清单文件和 w9xpopen.exe?

我正在使用 Py2exe 在 Windows 7 Pro(64 位)上使用 Python 2.6(32 位)编译 CherryPy(3.1)服务器。

该服务器将在没有 GUI 的情况下运行。

问题:

  1. 如果此应用程序在没有 GUI 的情况下运行,我是否需要担心为它添加清单文件?

  2. 我需要在我的 exe 中包含 w9xpopen.exe 吗?

到目前为止,我有限的测试表明我不需要在我的可执行文件中包含清单文件或 w9xpopen.exe 即可使其工作。

评论赞赏。

谢谢你,马尔科姆

0 投票
1 回答
1862 浏览

python - PyCrypto 与 Py2exe

您可以将PyCryptopy2exe一起使用吗?py2exe 可以使用任意库吗?

谢谢,克里斯

0 投票
3 回答
6992 浏览

resources - Py2exe:在 exe 文件本身中嵌入静态文件并访问它们

我找到了一个在 library.zip 中添加文件的解决方案:Extend py2exe to copy files to the zipfile where pkg_resources can load them

当 library.zip 不包含 exe 时,我可以访问我的文件。

我在 library.zip 中的目录:foo/media 中添加了一个文件:text.txt。我使用这段代码:

我尝试使用 pkg_resources 但我认为我不明白某些内容,因为我可以直接打开“library.zip”。

我的问题是,当 library.zip 嵌入到 exe 中时,我该怎么做?

此致

让-米歇尔

0 投票
4 回答
3382 浏览

python - Windows Server 无法执行 py2exe 生成的应用程序

一个简单的 python 脚本需要在没有安装 python 的 windows 服务器上运行。

我使用了 py2exe,它生成了一个健康的 dist 子目录,以及在本地机器上运行良好的 script.exe。
但是,当我在服务器(Windows Server 2003 R2)上运行它时,它会产生:
系统无法执行指定的程序。

错误级别为 9020。

有任何想法吗?

0 投票
4 回答
17897 浏览

python - Py2exe - win32api.pyc ImportError DLL 加载失败

我正在尝试使用 py2exe 分发我编写的 python 应用程序。一切似乎都正常,但是当我在另一台机器上运行它时,它失败并出现以下错误:

我对此进行了谷歌搜索,但没有找到太多,但尝试了以下建议无济于事:

在 win32api 之前导入 pywintypes 和 pythoncom(在 py2exe 的 setup.py 和主应用程序中)向 setup.py 添加了一些代码 -

我对这一切都很陌生,所以任何帮助将不胜感激

谢谢

乔恩

0 投票
1 回答
582 浏览

python - 在 Windows 98 中通过网络访问 py2exe 程序会引发 ImportErrors

我正在许多客户端机器上的一台服务器机器上运行一个 py2exe 编译的 python 程序(映射到每台机器上的网络驱动器,比如 W:)。

对于 Windows XP 和更高版本的机器,到目前为止,Python 获取 W:\python23.dll 的问题为零(是的,我使用 Python 2.3.5 来兼容 W98 等等)。然后它将使用 W:\zlib.pyd 解压缩包含所有 .pyc 文件(如 os 等)的 W:\library.zip,然后将其导入并且程序运行没有问题。

我遇到的问题是在一些 Windows 98 SE 机器上(注意:一些 Windows 98 SE 机器,其他机器似乎没有明显问题)。发生的情况是,程序从 W: 运行,我假设找到了 W:\python23.dll(因为我得到 Python ImportErrors,我们需要能够执行 Python import 语句),但是有几件事不起作用:

1)如果 W:\library.zip 包含 .pyc 文件的唯一副本,我会得到 ZipImportError: can't decompress data; zlib not available(废话,考虑到 W:\zlib.pyd 是可用的,并且可以在同一网络上的 XP 和更高版本的机器上正常工作)。

2) 如果 .pyc 文件实际上是通过 py2exe 捆绑在 python exe 中,或者放在与 .exe 相同的目录中,或者放在一个命名的子目录中,然后将其设置为 PYTHONPATH 变量的一部分(例如 W:\pylib ),我得到ImportError: no module named os(os 是第一个导入的模块,在 sys 和其他任何东西之前)。

想一想,如果 os 在它之前被导入, sys.path 将无法搜索?我将尝试切换这些导入的顺序,但我的问题仍然存在:为什么这是一个零星的问题,在某些网络上工作而不在其他网络上工作?我将如何强制 Python 找到捆绑在我运行的可执行文件中的文件?我可以立即访问正在工作的 Windows 98 SE 机器,但我只能在每天早上在他们的商店开业之前访问不工作的机器(我的一位客户)。

提前致谢!


编辑:好的,向前迈出了一大步。使用 PY2EXE_VERBOSE 调试后,特定 W98SE 机器上出现的问题是它在查找导入时没有使用正确的路径语法。首先,它似乎没有读取 PYTHONPATH 环境变量(可能有一个我不知道的特定于 py2exe 的变量,比如 PY2EXE_VERBOSE)。

其次,它在放弃之前只在一个地方查找(如果文件捆绑在 EXE 中,它会在那里查找。如果没有,它会在 library.zip 中查找)。

编辑 2:事实上,据此,Python解释器中的 sys.path 与 Py2exe 可执行文件之间存在差异。具体来说,sys.path contains only a single entry: the full pathname of the shared code archive.布拉。没有退路?甚至没有当前的工作目录?我会尝试添加W:\到 PATH,但 py2exe 不符合任何类型的系统库定位标准,所以它不起作用。

现在是有趣的一点。它尝试加载 atexit、os 等的路径是:

W:\\library.zip\<module>.<ext>

请注意 library.zip 后的单斜杠,但驱动器号后的双斜杠(如果这是有意的并且应该有效,请纠正我)。看起来如果这是一个字符串文字,那么由于斜杠没有加倍,它被读取为(无效)转义序列并打印原始字符(给出W:\library.zipos.pyd, W:\library.zipos.dll, ...而不是斜杠);如果它不是字符串文字,则双斜杠可能不会自动进行规范路径(应该如此),因此双斜杠会混淆模块加载器。就像我说的,我不能仅仅set PYTHONPATH=W:\\library.zip\\因为它忽略了那个变量。

在我的程序开始时使用 sys.path.append 可能是值得的,但是硬编码模块路径绝对是最后的手段,特别是因为问题发生在过时操作系统的 ONE 配置中。

有任何想法吗?我有一个,这是sys.path我需要os的。另一个是再次附加os.getenv('PATH')或添加os.getenv('PYTHONPATH')到 sys.path...,需要os模块。该site模块也无法初始化,所以我不能使用 .pth 文件。

我最近还在程序开始时尝试了以下代码:

但它无法加载 linecache.pyc 或其他任何内容;它实际上无法从事物的外观上执行这些命令。有什么方法可以使用不需要 linecache 来动态修改 sys.path 的内置功能?还是我只能硬编码正确的 sys.path?

0 投票
3 回答
7588 浏览

python - 使用 py2exe (QtCore) 构建 PyQt 脚本时出现问题

我正在尝试使用 pyqt 在 Windows 中制作一个简单的 hello-world 可执行 python gui 应用程序。所以我已经制作了pyqt.py文件

我尝试将 py2exe 与以下setup.py脚本一起使用:

(我No module named sip首先遇到了错误,但感谢Py2exeAndPyQt页面解决了)。

现在我有了可执行文件,当我尝试运行它时,出现以下错误:

我该如何解决?TIA

0 投票
2 回答
13207 浏览

python - 如何解压python鸡蛋?

我在使用 py2exe 时尝试捆绑一些鸡蛋依赖项,正如 py2exe 网站上所述,它不适用于这些,我需要先解压缩它们。我尝试先运行easy_install -m lxml然后运行easy_install --always-unzip lxml==2.2.2,但没有成功。然后我尝试将解压缩行为设置为默认值,方法是将其设置为distutils.cfg. 我没有找到后一个文件,所以我HOME创建了环境变量并在pydistutils.cfg那里创建了一个包含以下内容的文件:

但 easy_install 仍然没有解开鸡蛋的包装。完成工作的最简单方法是什么?

0 投票
3 回答
6937 浏览

python - 多处理问题 [pyqt, py2exe]

我正在使用 PyQt4 编写一个 GUI 程序。我的主窗口中有一个按钮,然后单击此按钮。我希望启动一个后台进程,它是从 processing.Process 派生的类的一个实例。

(请注意,我使用的是从 http://code.google.com/p/python-multiprocessing/获得的 python-multiprocessing 的 Python2.5 端口, 这就是为什么它是 processing.Process 而不是 multiprocessing.Process。我猜这不应该有什么不同。我说得对吗?)

连接到按钮点击信号的代码就像

该程序在 python 解释器下按预期工作,即如果它是从命令行“python myapp.py”启动的。

但是,在我使用 py2exe 打包程序后,每次单击该按钮时,都会弹出主窗口的副本,而不是启动后台任务。我不确定这种行为的原因是什么。我想这与http://docs.python.org/library/multiprocessing.html#multiprocessing-programming中的以下注释有关

“这个包中的功能要求主要方法可以由孩子们导入。这在编程指南中有所介绍,但值得在这里指出。这意味着一些示例,例如 multiprocessing.Pool 示例在交互式解释器中不起作用"

如果name == " main "我唯一的位置是在主模块中,就像在典型的 pyqt 程序中一样

有关如何解决此问题的任何解决方案?谢谢!