我一直在玩 PTVS 2.1 Beta 2 和 Visual Studio Express 2013 升级 3。我喜欢 PTVS 中的很多功能,所以我很高兴尝试一下。到目前为止还可以,但我有一个主要且令人困惑的问题。
我正在运行 Enthought Canopy Express 32 位。
我非常依赖 pywin32 库来连接 com 对象。当我尝试通过 PTVS 运行一些使用 pywin32 的代码时,它失败了。我的代码中失败的行是:
from win32com.client import *
这是错误:
File "C:\Users\[username]\AppData\Local\Enthought\Canopy32\User\lib\site-packages\win32com\__init__.py", line 5, in <module>
import win32api, sys, os
ImportError: DLL load failed: The specified module could not be found.
奇怪的是,如果我只是在 Visual Studio 之外启动一个解释器窗口 (C:\Users[username]\AppData\Local\Enthought\Canopy32\User\python.exe),那么相同的代码就可以正常工作。
我首先比较了两种方法之间的 sys.path ,它们是相同的。
在我看来,win32api.pyd 文件无法加载它所依赖的某些 dll。我在依赖walker中打开了win32api.pyd,除了一些深度嵌套的后期加载依赖之外,MSVCR90.DLL是唯一找不到的东西。
我尝试将其从 matplotlib\backends 文件夹复制到与 win32api.pyd 相同的文件夹,但没有帮助。MSVCR90.DLL 不在 windows\system 或 windows\sysWOW64 中。
我很想使用 PTVS 作为我的 goto,但如果我不能让它工作,我会被困住。任何帮助,将不胜感激!