【发布时间】:2015-09-19 19:55:34
【问题描述】:
我已经设法让 pyinstaller 现在或多或少地正确运行,只是它打开了太多窗口。它是 pygame 项目,它会每隔一秒左右重新加载整个内容。几秒钟后,我的电脑充满了游戏窗口,然后一切都停止了。
从命令行运行它,我可以看到打印输出说应用程序开始在命令行窗口中一遍又一遍地粘贴。据我所知,应用程序并没有关闭或退出,只是越来越多地产生。
我调用来启动 pyinstaller 的命令是这样的:
pyinstaller --onedir main_local.py
主文件如下所示:
# Library imports
import pygame
# Project imports
from multiroidal_client import MultiroidalClient
from settings import *
import time
# Main program function
def main():
# Initialise game class
game = MultiroidalClient(SCREEN_SIZE, ('127.0.0.1', 8080))
# Start game loop
game.main_game_loop()
# Execute main function
if __name__ == '__main__':
main()
我尝试注释掉 if __ name __ ... 位,以查看是否由于某种原因它正在执行 main 函数并每次意外调用重复项或其他原因。如您所料,当被注释掉时,exec 什么也不做。
有什么想法吗?我没有包含更多代码,因为它有很多,我不确定哪些部分是相关的。如果您需要查看其他内容,请告诉我。
干杯
编辑:我在 game.main_game_loop() 之后添加了一个快速打印,只是为了检查脚本是否跳出无限游戏循环。没有这样的运气。它正在加载脚本的并行实例,所有脚本同时运行。
编辑:我查看了 pyinstaller 文档并设法进行了更多调试。不确定它是否相关,但在这里。这个对话屏幕只是一遍又一遍地重印。我还尝试了 --noupx 选项,它有时显然可以提供帮助 - 没有这样的运气。
【问题讨论】:
-
如果将
main重命名为main2会怎样? -
@cdonts 好主意,不幸的是没有这样的运气。没有改变。
标签: python pyinstaller