gpt4 book ai didi

python - 在 64 位 Windows 7 机器上使用 Python 构建 Com 服务器

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:16 25 4
gpt4 key购买 nike

Original post is here: http://mail.python.org/pipermail/python-win32/2010-December/011011.html

I am using:

  • OS: 64 bit Windows 7 Professional
  • Python: python-2.7.1.amd64
  • Python win32 extensions: pywin32-214.win-amd64-py2.7
  • Py2exe: py2exe-0.6.9.win64-py2.7.amd64

我正在尝试为 Windows 构建图标覆盖。它在 32 位上运行良好Windows 但不能在 64 位 Windows 7 上运行。

这是我为测试创建的 Python 模块:

  1. test_icon_overlay.py:(http://mail.python.org/pipermail/python-win32/attachments/20101229/bb8c78a4/attachment-0002.obj)用 Python 为图标覆盖创建的 com 服务器在“C:\icons”文件夹中添加复选标记覆盖图标(C:\icons\test.ico)

  2. setup_VI.py:(http://mail.python.org/pipermail/python-win32/attachments/20101229/bb8c78a4/attachment-0003.obj)安装文件,它创建 test_icon_overlay.dll分布。

  3. icons.zip: ( http://mail.python.org/pipermail/python-win32/attachments/20101229/bb8c78a4/attachment-0001.zip ) 为了测试你应该把 icons.zip 解压到 C:\

当我执行 python 时,图标覆盖出现在 C:\icons 文件夹中Windows 命令提示符下的 test_icon_overlay.py 并重新启动 explorer.exe。但它不适用于使用 setup_VI.py

创建的 dll 文件

我已经使用 python setup_VI.py py2exe 创建了 dll 文件,然后尝试使用 regsvr32 test_icon_overlay.dll 注册它。注册失败Windows 错误消息 注册 shell 扩展时出错 0x80040201

然后我在 Python27/Lib/site-packages/py2exe/boot_com_servers.py 中打开了记录器,这是我在 comerror.txt 中得到的回溯regsvr32
test_icon_overlay.dll

PATH is ['C:\\root\\avalon\\module\\sync\\python\\src\\dist\\library.zip']
Traceback (most recent call last):
File "boot_com_servers.py", line 37, in <module>
pywintypes.error: (126, 'GetModuleFileName', 'The specified module could not
be found.')
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'DllRegisterServer' is not defined

看起来 win32api.GetModuleFileName(sys.frozendllhandle) 或在 64 位 Windows 7 上构建的 dll 可能存在问题。

另外,我看到在 64 位 Windows 7 上安装 pywin32-214.win-amd64-py2.7 完成时出现错误消息:Snapshot

close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr

我做错了什么吗?对此的任何帮助都非常重要赞赏。

最佳答案

在 64 位 Python 上的 py2exe 中有一个错误。由 py2exe 初始化的 sys.frozendllhandle 无效,导致 win32api.GetModuleFileName(sys.frozendllhandle) 失败。

您可能想在 http://www.lfd.uci.edu/~gohlke/pythonlibs/#py2exe 尝试修补的 py2exe 安装程序

关于python - 在 64 位 Windows 7 机器上使用 Python 构建 Com 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com