我正在打包一个Python2.7程序,其中包含了最新版本的Pynsist。
我按照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.所以我想问题是关于皮克的。
在谷歌上没有任何关于这一点,但我不能使用其他程序的包装(例如。py2exe,pyinstaller .)
感谢并为糟糕的英语感到抱歉
发布于 2017-09-13 12:15:39
重新张贴作为一个答案,因为它有效:
如果你把游戏放在packages=里,它会尝试从你的电脑上复制它。但是在你的电脑上,这是Linux的玩偶,它不能在Windows上工作。如果你把游戏放在配置文件的pypi_wheels=位中,品司手会帮你下载一个视窗版本。
查看一下Pynsist存储库中的游戏例子。
大多数包没有这个问题,因为它们只包含Python代码,这些代码在所有平台上都是相同的文件。Pygame已经编译了模块,这些模块必须为正确的平台进行编译。
https://stackoverflow.com/questions/46034115
复制相似问题