Py2exe:编译无GUI接口的web服务器时,是否需要清单文件和w9xpopen.exe?

11 投票
3 回答
10843 浏览
提问于 2025-04-15 17:01

我正在使用Py2exe把一个CherryPy(3.1)服务器编译成可执行文件,使用的是Python 2.6(32位),在Windows 7专业版(64位)上。

这个服务器会在没有图形界面的情况下运行。

我有几个问题:

  1. 如果这个应用程序没有图形界面,我需要担心添加一个清单文件吗?

  2. 我需要把w9xpopen.exe和我的可执行文件一起打包吗?

到目前为止,我的有限测试表明,我的可执行文件在运行时不需要包含清单文件或w9xpopen.exe。

欢迎评论。

谢谢,
Malcolm

3 个回答

0
  • 不需要强制使用清单文件。

  • 你可以把 w9xpopen.exe(适用于 Windows XP 及以上版本)排除在外。

顺便说一下,如果你使用 py2exe 版本 0.6.9 来自动排除 w9xpopen.exe,我需要在我的 setup.py 文件中设置 dll_excludes 作为 py2exe 的一个选项。下面是 "myapp.py" 的一个例子:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(    
    name = "...",
    version = '1.0',
    description = "...",
    author = "...",
    windows = [{'script': 'myapp.py', 
                'icon_resources': [(1, 'myapp.ico')]
                }],
    zipfile = None,
    data_files=[],
    options = {
        'py2exe': {
            'optimize':2, 
            'bundle_files': 2, 
            'compressed': True, 
            'excludes':[],
            'dll_excludes':['w9xpopen.exe']
            }
        }
)

对于不需要图形界面的应用程序,你可以使用 console=[...] 代替 windows=[...]

0

控制台应用程序不需要清单文件。对于Windows XP及以后的版本,w9xpopen.exe也不需要了。

12

w9xpopen.exe 是专门为 Windows 95/98 设计的,所以如果你不使用这些系统,就不需要它。

你可以在你的 py2exe 设置文件中添加 dll_excludes=['w9xpopen.exe'] 来排除这个文件。

当然,如果你不使用图形用户界面(GUI),那么也不需要清单文件。

撰写回答