Pio*_*pla 7 pywin32 py2exe 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.
Run Code Online (Sandbox Code Playgroud)
该脚本如下所示:
import win32file
print "Hello world!"
Run Code Online (Sandbox Code Playgroud)
这是setup.py:
from distutils.core import setup
import py2exe
setup(console=['dependency_checker.py'])
Run Code Online (Sandbox Code Playgroud)
你之前有类似的问题吗?
版本:
Python 2.6.2,py2exe 0.6.9,pywin32-214,Windows 7和Windows XP Pro作为目标机器
更新:
win32file.pyc抛出错误的部分如下所示:
>>> imp.load_dynamic('win32file', r'C:\test\setup-test\src\dist\win32file.pyd')
Run Code Online (Sandbox Code Playgroud)我的开发框(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"]}}
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4117 次 |
| 最近记录: |