Je suis empaquetant un programme de Python 2.7 avec la dernière version de Pynsist.
J'ai créé un fichier installer.cfg en suivant l'exemple this.
Mais quand j'essaie d'emballer mon application en cours d'exécution[Python 2.7] Programme du paquet avec Pynsist
pynsist installer.cgf
dans le dossier de l'application, il arrive avec
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.
Le problème que je pense est avec Pygame.
Sur Google il n'y a rien à ce sujet, mais je ne peux pas utiliser d'autres programmes pour l'emballage (par exemple, py2exe, pyinstaller ecc ...).
Merci et désolé pour le mauvais anglais
Si vous mettez pygame dans 'packages =', il essaie de le copier depuis votre ordinateur. Mais c'est pygame pour Linux, qui ne fonctionnera pas sur Windows. Vous pouvez contourner cela en utilisant une roue pour pygame - Pynsist choisira automatiquement une roue de Windows. Jetez un oeil à l'exemple de pygame ici: https://github.com/takluyver/pynsist/tree/master/examples/pygame –
@ThomasK J'ai regardé l'exemple mais je n'ai pas très bien compris ... i avoir à télécharger la version windows de pygame et ....? Et pourquoi avec les autres modules je n'ai pas ce problème? –
Si vous placez pygame dans le bit 'pypi_wheels =' du fichier de configuration (au lieu de 'packages ='), Pynsist se chargera de le télécharger pour vous. Vous ne devriez pas avoir besoin de faire quoi que ce soit vous-même. La plupart des paquets n'ont pas ce problème parce qu'ils contiennent seulement le code Python, qui est les mêmes fichiers sur toutes les plateformes. Pygame a des modules compilés, qui doivent être compilés pour la bonne plateforme. –