即使是使用 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 作为目标计算机
UPDATE:
- 我可以在创建它的 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 从 python 安装加载 win32file 时,我可以重新加载 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"]}}
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)