加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 游戏从源代码运行良好,但不是从py2app运行

发布时间:2020-12-16 21:38:34 所属栏目:Python 来源:网络整理
导读:我用TCP,UDP和pygame做了一个多人Pong游戏. 我正在使用的模块是:pygame,os,logging,threading,random,yaml(PyYAML)和socket 使用python2.7从命令行运行游戏时效果很好,但是使用py2app编译的版本给出了一个错误,即: TypeError: Error when calling the meta
我用TCP,UDP和pygame做了一个多人Pong游戏.
我正在使用的模块是:pygame,os,logging,threading,random,yaml(PyYAML)和socket

使用python2.7从命令行运行游戏时效果很好,但是使用py2app编译的版本给出了一个错误,即:

TypeError: Error when calling the metaclass bases
    function() argument 1 must be code,not str

我已经google了一下,关于堆栈溢出的其他问题在我看来似乎没有任何意义.它给我错误的行是:

class Entity(pygame.Surface):
    def __init__(self,x,y,w,h,color=(255,255,255)):
        pygame.Surface.__init__(self,(w,h))

您可能已经理解,它位于此示例的第一行.使用pygame.Surface时有点奇怪.虽然正如我所说,它在我在命令行中运行程序时有效!

我使用的py2app脚本是这样的:

from setuptools import setup

    APP = ['src/client.py']
    OPTIONS = {'argv_emulation': True,'includes': ['EXTERNAL LIBRARY'],}

    setup(
        app=APP,options={'py2app': OPTIONS},setup_requires=['py2app'],)

提前致谢!

解决方法

自己找到了解决方案.在命令行早些时候,它说:
RuntimeWarning: import transform: No module named _view (ImportError: No module named _view)

显然,这使得’pygame.Surface`无法导入,并且未被计算机识别为函数.所以,错误信息毕竟是有道理的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读