Problems with Cx_freeze

匿名 (未验证) 提交于 2019-12-03 10:24:21

问题:

If I'm actually asking you for help, it's because I spend many hours for nothing into trying to fix my problem:

I would like to compile my python script into .exe: (I am using Python 32 bits 3.1.4 and pygame)

I have 4 files: Class.pyc, _Class_game.pyc, _ressources.pyc et main.py and a folder @ressources with all images and songs

This is my scritp setup.py:

import cx_Freeze executables = [cx_Freeze.Executable("main.py"), base = "Win32GUI"] cx_Freeze.setup(     name="Strike The square",     version = "2.0",     description = "Jeu Strike The Square, V2.1",     options={"build_exe": {"packages":["pygame"],                            "include_files":   ["_Class_.pyc","_Class_game.pyc","_ressources.pyc"]}},     executables = executables  ) 

This create a folder "exe.xin32-3.1" with python (compiled) and my game

Next, I use inno setup to build the installer and add the folder @ressources

On my computer, It works very well, but when one of my friend wants to play (he hasn't python and pygame), the game creates this error: [Error][1]

Then...I think this error comes from windows' ressources but I don't know how can I fix it... The option (in setup.py):

include_msvcr = True 

Doesn't work...

Thanks for your answer and excuse my english...

Hawk_Eyes

PS: this my game imports

try:     import pygame,time, ctypes     from random import randint     from pygame.locals import *     from math import sqrt      from _ressources import Shared except ImportError as e:     print("Erreur du chargement du module: {0}".format(e)) 

回答1:

Not sure if this will help but this is a copy of my setup file, i have used this to compile Pygame, Pubnub and various things. notice i don't include the files i want to include. The setup auto finds the files needed.

import sys from cx_Freeze import setup, Executable  exe = Executable(     script = r"launcher.py",     base = 'Win32GUI',     icon = None,     targetName = "launcher.exe"     )  setup(     version = "0.1",     description = "launcher",     author = "Joshua Nixon",     name = "launcher",     executables = [exe]     )  $ cd path/to/files $ python file.py build 

EDIT

I recently found you could create .MSI files using cx_freeze which are very nice for distributing. IF the program uses images then (because you cannot bundle images with the MSI (that i know of) you create a little function which downloads them on launch from imgur or some place))

setup.py for MSI

import sys from cx_Freeze import setup, Executable  company_name = "JoshuaNixon" product_name = "Test"  bdist_msi_options = {     'add_to_path': False,     'initial_target_dir': r'[ProgramFilesFolder]\%s' % (company_name),     }  if sys.platform == 'win32':     base = 'Win32GUI' else:     base = None  exe = Executable(script='launcher.py',                  base=base,                  icon="mushroom.ico",                 )  setup(name=product_name,       version='1.0.0',       description='blah',       executables=[exe],       options={'bdist_msi': bdist_msi_options})  $ cd path/to/files $ python file.py bdist_msi 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!