从.py转换为.exe后,只有一些pygame项目可以工作

时间:2019-01-06 14:58:18

标签: python python-3.x pygame file-conversion

我希望能够将python 3 pygame 1.9.4项目(在Windows 10计算机上)的.py转换为.exe,并且我已经通过使用自动py成功转换了一些文件到exe(一个文件,基于控制台) ): https://nitratine.net/blog/post/auto-py-to-exe/。 例如,我尝试转换此网站上的代码: http://openbookproject.net/thinkcs/python/english3e/pygame.html。那就是:

Vue.prototype.$toggleBodyClass

.exe文件在打开时会正常运行。但是,我编写的某些程序在转换后只能部分运行。 这样的程序之一是:

import pygame

def main():
    """ Set up the game and run the main game loop """
    pygame.init()      # Prepare the pygame module for use
    surface_sz = 480   # Desired physical surface size, in pixels.

    # Create surface of (width, height), and its window.
    main_surface = pygame.display.set_mode((surface_sz, surface_sz))

    # Set up some data to describe a small rectangle and its color
    small_rect = (300, 200, 150, 90)
    some_color = (255, 0, 0)        # A color is a mix of (Red, Green, Blue)

    while True:
        ev = pygame.event.poll()    # Look for any event
        if ev.type == pygame.QUIT:  # Window close button clicked?
            break                   #   ... leave game loop

        # Update your game objects and data structures here...

        # We draw everything from scratch on each frame.
        # So first fill everything with the background color
        main_surface.fill((0, 200, 255))

        # Overpaint a smaller rectangle on the main surface
        main_surface.fill(some_color, small_rect)

        # Now the surface is ready, tell pygame to display it!
        pygame.display.flip()

    pygame.quit()     # Once we leave the loop, close the window.

main()

转换为exe后,当我打开它时,会出现一些有关pygame的文本,以及要弹出的屏幕,其中显示了我设置的标题(“某些标题”)。但是,弹出的屏幕是黑色的,过了一会儿关闭,没有显示应该显示的内容。但是,我确实得到了我的exe文件,没有任何错误(无论如何我都可以在用于转换的GUI输出中看到它,即将py自动转换为exe)。因此,在寻找解决方案时,我找到了这个网站: https://nitratine.net/blog/post/issues-when-using-auto-py-to-exe/

关于错误消息和常规信息很多,但是我看到的有关打开的程序但在关闭前没有做应做的事情是

  

终端只是打开和关闭,但如果您没有错误,   双击运行您的Python脚本,会发生什么?它打开了吗   还关吗?这意味着该工具已正确完成了其工作,并且   脚本按预期完成。

     

您很可能认为输出应该保持可见,因为   总是使用IDLE或IDE,这就是这些工具的作用。添加一个   脚本末尾的类似于input()的语句来阻止执行   然后等待您按Enter键,然后再关闭。

这不是解决我的问题的方法,因为如果我双击python脚本,我的程序就会工作。但是,我认为这是有好处的,即我的代码中可能存在某些无法很好地处理转换的问题,这很可能是因为http://openbookproject.net/thinkcs/python/english3e/pygame.html的代码在转换为.exe后仍能正常工作方法。

因此,我的问题是,是什么使我的代码在从.py转换为.exe之后无法正常工作?,并且在这种情况下,它可以通过什么方式修复? ?。知道什么有效,而不是将.py转换为.exe时,将使更多程序在.exe下正常运行。

谢谢

0 个答案:

没有答案