py2exe - 在 python 2.6 上加载 win32file.pyd 的问题

标签 py2exe pywin32 python-2.6

即使是使用 win32file 的简单脚本,我也无法使 py2exe 正确打包
我不断收到以下错误消息:

Traceback (most recent call last):
  File "dependency_checker.py", line 1, in <module>
  File "win32file.pyc", line 12, in <module>
  File "win32file.pyc", line 10, in __load
ImportError: DLL load failed: The specified procedure could not be found.

该脚本如下所示:
import win32file
print "Hello world!"

这是 setup.py:
from distutils.core import setup
import py2exe
setup(console=['dependency_checker.py'])

你以前有过类似的问题吗?

版本:

Python 2.6.2、py2exe 0.6.9、pywin32-214、Windows 7 和 Windows XP Pro 作为目标机器

更新:
  • 我可以在创建它的 Windows 7 上运行捆绑程序,但不能在 XP 机器上运行它。
  • 抛出错误的 win32file.pyc 部分如下所示:
    >>> imp.load_dynamic('win32file', r'C:\test\setup-test\src\dist\win32file.pyd')
    

  • 我的开发箱(windows 7)上的上面一行运行正常,而在测试箱(windows XP)上返回错误。

    ** 更新 2:**

    当我使用 imp.load_dynamic 加载 win32file 表单 python 安装时,我可以重新加载 dist 文件夹的 win32file.pyd 没有错误。

    最佳答案

    解决办法是删除被py2exe错误复制到dist目录下的MSWSOCK.dll。

    我已经使用 procmon 和 listdll 来检查导入成功时 win32file.pyd 加载的内容以及导入失败时加载的 dll。然后查看我检查过的dll列表是否正确加载,即。来自 dist 文件夹的 python dll 和来自 windows 文件夹的 windows dll。

    这是运行良好的 setup.py

    from distutils.core import setup
    import py2exe
    setup(console=['dependency_checker.py'],
         options={'py2exe': {"dll_excludes": ["mswsock.dll", "MSWSOCK.dll"]}}
         )
    

    关于py2exe - 在 python 2.6 上加载 win32file.pyd 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1439621/

    相关文章:

    python - 在Windows 98中通过网络访问py2exe程序会引发ImportErrors

    python - 如何使用Python从Excel中的特定列中提取不可见的注释

    Python win32serviceutil 查询服务状态 : What does the return value mean?

    python 2.6.7 多处理池无法关闭

    python - os.listdir 正在删除字符重音

    python - 如何优化 Python 中大型(75,000 项) bool 值集的操作?

    python - 将 Python 应用程序捆绑为单个文件以支持附加组件或扩展?

    python - 如何为 Python 制作具有良好图形的 .exe?

    python - py2exe 不生成 exe 吗?

    python - 如何使用 pywin32 知道窗口是否最大化?