0

我一直在玩 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,但如果我不能让它工作,我会被困住。任何帮助,将不胜感激!

4

1 回答 1

0

我解决了这个问题。另一个安装 VS 2013 的 web 干扰了一些方式。我卸载了它,问题就消失了。

于 2014-08-28T21:12:21.423 回答