gpt4 book ai didi

linux - [ Python 2.7 ] 用 Pynsist 打包程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:13 25 4
gpt4 key购买 nike

我正在用最新版本的 Pynsist 打包一个 Python 2.7 程序。
我在 this 之后创建了一个 installer.cfg 文件例子。
但是当我尝试打包我的应用程序运行时

pynsist installer.cgf

进入它附带的应用程序文件夹

Copying Python installer to build directory
PyLauncher MSI already in build directory.
Copying packages into build directory...
Traceback (most recent call last):
File "/usr/local/bin/pynsist", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/nsist/__init__.py", line 540, in main
InstallerBuilder(**args).run(makensis=(not options.no_makensis))
File "/usr/local/lib/python2.7/dist-packages/nsist/__init__.py", line 495, in run
self.prepare_packages()
File "/usr/local/lib/python2.7/dist-packages/nsist/__init__.py", line 381, in prepare_packages
py_version=self.py_version, exclude=self.exclude)
File "/usr/local/lib/python2.7/dist-packages/nsist/copymodules.py", line 224, in copy_modules
mc.copy(modname, target, exclude)
File "/usr/local/lib/python2.7/dist-packages/nsist/copymodules.py", line 195, in copy
check_package_for_ext_mods(path, self.py_version)
File "/usr/local/lib/python2.7/dist-packages/nsist/copymodules.py", line 41, in check_package_for_ext_mods
check_ext_mod(os.path.join(path, dirpath, filename), target_python)
File "/usr/local/lib/python2.7/dist-packages/nsist/copymodules.py", line 30, in check_ext_mod
raise ExtensionModuleMismatch(extensionmod_errmsg % ('Windows', path))
nsist.copymodules.ExtensionModuleMismatch: Found an extension module that will not be usable on Windows:
/usr/lib/python2.7/dist-packages/pygame/rwobject.so
Put Windows packages in pynsist_pkgs/ to avoid this.

所以我认为问题出在 Pygame 上。

在 Google 上没有关于此的任何信息,但我不能使用其他程序进行打包(例如 py2exe、pyinstaller ecc...)。
谢谢,抱歉英语不好

最佳答案

重新发布作为答案,因为它有效:

如果您将 pygame 放在 packages= 中,它会尝试从您的计算机中复制它。但是在您的计算机上,这是适用于 Linux 的 pygame,它无法在 Windows 上运行。如果您改为将 pygame 放入配置文件的 pypi_wheels= 位,Pynsist 会负责为您下载 Windows 版本。

看看the pygame example在 Pynsist 存储库中。

大多数包没有这个问题,因为它们只包含 Python 代码,在所有平台上都是相同的文件。 Pygame 已编译模块,必须针对正确的平台进行编译。

关于linux - [ Python 2.7 ] 用 Pynsist 打包程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46034115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com