设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 14444|回复: 3
打印 上一主题 下一主题

pygame 打飞机 py2exe打包问题

[复制链接]

1

主题

0

好友

17

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2017-10-15 21:15:57 |只看该作者 |倒序浏览
做pygame的练习时,用cxfreeze 和 py2exe打包时都遇到了一点问题。。。

cxfreeze遇到的问题:
用cxfreeze打包完成,在在dist文件夹下出了个exe文件,但是打开就一闪而过,直接用命令行运行后提示以下报错:

PS E:\Python\work\pygame\打飞机> .\打飞机.ex
ImportError: No module named __startup__

py2exe遇到的问题:
从论坛里下载了py2exe的配置文件,修改过后放入dist文件夹下:

以下是修改过的部分:
class BuildExe:
    def __init__(self):
        # ------------------------------------------------------#
        ##### 对于一个新的游戏程序,需要修改这里的各个参数 #####
        # ------------------------------------------------------#

        # 起始py文件
        self.script = "打飞机.py"
        # 游戏名
        self.project_name = "打飞机"
        # 游戏site
        self.project_url = "about:none"
        # 游戏版本
        self.project_version = "0.1"
        # 游戏许可
        self.license = "打飞机 License"
        # 游戏作者
        self.author_name = "H"
        # 联系电邮
        self.author_email = "blog@eyehere.net"
        # 游戏版权
        self.copyright = "Copyright (c) 3000 H."
        # 游戏描述
        self.project_description = "打飞机 Description"
        # 游戏图标(None的话使用pygame的默认图标)
        self.icon_file = None
        # 额外需要拷贝的文件、文件夹(图片,音频等)
        self.extra_datas = []
        # 额外需要的python库名
        self.extra_modules = []
        # 需要排除的python库
        self.exclude_modules = []
        # 额外需要排除的dll
        self.exclude_dll = ['']
        # 需要加入的py文件
        self.extra_scripts = []
        # 打包Zip文件名(None的话,打包到exe文件中)
        self.zipfile_name = None
        # 生成文件夹
        self.dist_dir = 'dist'

之后发现无法运行py2game
试过直接运行py2game的那个配置文件,提示一下信息

PS C:\Users\H\dist> python '.\py2exe config.py'
Sorry, you must install py2exe, pygame. No module named core

但是我py2exe和pygame应该都装好了呀。。。

PS C:\Users\H\dist> pip freeze
cx-Freeze==5.0.2
Django==1.11.6
image==1.5.16
olefile==0.44
Pillow==4.3.0
py2exe==0.9.2.2
pyExcelerator==0.6.4.1
pygame==1.9.3
pytz==2017.2
xlrd==1.1.0
xlutils==2.0.0
xlwt==1.3.0

而且奇怪的是,进python, pygame可以import, 但是import py2exe就有以下报错

>>> import py2exe
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\py2exe\__init__.py", line 9, in <module>
    patch_distutils()
  File "C:\Python27\lib\site-packages\py2exe\patch_distutils.py", line 64, in patch_distutils
    import distutils.dist
ImportError: No module named dist

有没有大神能帮忙看一下。。。

2017-10-15_210643.jpg (18.89 KB, 下载次数: 399)

2017-10-15_210643.jpg

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2017-10-16 00:00:05 |只看该作者
网上搜了下 好像是 cxfreeze 5 对py2是有问题的,装成 cxfreeze 4.3 的试试

py2exe那个不清楚,但感觉也像是版本问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

17

积分

新手上路

Rank: 1

板凳
发表于 2017-10-25 21:34:49 |只看该作者
crossin先生 发表于 2017-10-16 00:00
网上搜了下 好像是 cxfreeze 5 对py2是有问题的,装成 cxfreeze 4.3 的试试

py2exe那个不清楚,但感觉也像 ...

谢谢!
我换成了python 3.6,用cxfreeze打包成功了。。。
但是有个问题,为啥打包后的EXE,一定要所有的图片素材和字体在统一文件夹下才能运行这个EXE呢?能不能打包一个EXE就可以直接运行,而不用再把其他的素材放在同一目录下才能运行呢
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2017-10-25 23:22:45 |只看该作者
好像是不行,py2exe 可以
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 01:03 , Processed in 0.017135 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部