如何使用py2exe编译多个脚本?

时间:2014-08-07 16:38:37

标签: python py2exe

我最近一直致力于文本游戏(在控制台或CMD中执行)。我已经测试过了,它完美无缺。但是现在我想让它成为一个单一的EXE。我已经用其他脚本完成了这个。问题是这个游戏实际上由3个脚本组成:main.py,maps.py,UInterface.py。这些都是像这样

在主文件中导入的
   import maps;
   import UInterface as UI;

如果将所有内容都放入单个exe并使其工作,我该怎么办? 重复一遍,我的代码已经工作了,只需要编译

3 个答案:

答案 0 :(得分:0)

  1. 下载并安装 - py2exe(link here http://www.py2exe.org/

  2. 像这样创建一个setup.py(在源目录中):

    from distutils.core import setup
    import py2exe
    
    setup(console = ['main.py'])
    
  3. 然后运行:

    python setup.py py2exe
    
  4. exe将在此处收到。\ dist \ main.exe

答案 1 :(得分:0)

状况:

  • 你有一个“主脚本”,称为“其他脚本”(在同一个 你自己创建的文件夹或包。

简短的答案:

  • 首先:您只需要使用py2exe编译主脚本。
  • Py2exe找不到您的“其他脚本”。要修复它,请复制该代码 setup.py的开头(当然更改main_script_dir)

    import sys
    main_script_dir = "folder1\\folder2\\main.py"
    main_folder = main_script_dir.rsplit("\\",1)[0]
    sys.path.append(main_folder)
    

删除脚本的名称,并将文件夹添加到PYTHONPATH。

大答案: (关于如何得出结论的解释)

如何测试py2exe无法找到“其他脚本”?

  • 使用一个简单的.bat文件运行py2exe,该文件包含要查找的cd命令 setup.py,运行命令和允许您使用的等待时间命令 之后在控制台中读取输出信息。
cd..
cd..
cd..
cd..
cd..
cd Folder1
cd Folder2

"C:\Python27\python.exe" setup.py py2exe

>nul ping -n 30 localhost
  • 您现在可以找到类似“以下模块”的警告 缺少“(使用右键单击>查找是否需要)

为什么会这样?

  • Py2exe查找类似于导入功能的“其他脚本”(在...中) 已经导入的模块,主脚本文件夹,pythonpath的 目录等)。但是,py2exe省略了主脚本文件夹 (也许这是一个错误)。这就是为什么你复制时不会有问题的原因 例如,在site-packages文件夹中的“其他脚本”。

你怎么解决这个问题?

您必须将主脚本目录添加到pythonpath:

  • (不推荐)如果使用控制面板修改它,则更改 该计划结束后将继续保留。

(像这样:How to add to the pythonpath in windows 7?

  • (推荐)如果您使用代码修改它(按照步骤操作) 在上面的简短答案中详述),变化将保持不变 直到该计划结束。
祝你好运!

答案 2 :(得分:0)

我看到这篇文章试图从一些独立的脚本创建一组可执行文件。最终,我通过将分配给 console.log 的所有脚本名称解决了这个问题。从文档中,console 是要转换为控制台 exe 的脚本列表的关键字。

示例:

setup(console=[
    'script1.py',
    'script2.py',
    'script3.py'
    ]
)

希望这对尝试做同样事情的人有所帮助。