2014-08-27 40 views
0

我一直在玩升级3的PTVS 2.1 Beta 2和Visual Studio Express 2013.我喜欢PTVS中的很多功能,所以我很高兴能够尝试一下。到目前为止它是可以的,但我有一个主要和令人困惑的问题。pywin32不能与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:\用户[用户名] \ 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作为我的转到,但我卡住了,如果我不能得到这个工作。任何帮助,将不胜感激!

+0

您是如何设置项目使用Canopy作为解释器的?您是否使用了他们提供的PTVS集成支持(Canopy在Python环境窗口中显示为独特且正确命名的解释器),还是仅将其添加为自定义解释器? – 2014-08-28 19:01:43

+0

我用Enthough安装程序安装了树冠,然后PTVS默认识别它(我想,但我不记得确定)。我发布这个问题后,我意识到它没有打开任何文件,并且在文件打开时不起作用。这感觉就像一个bug,所以我在PTVS codeplex页面上提交了bug 2633。然后我找到了下面的解决方案。 – Jesse 2014-08-29 11:51:24

回答

0

我解决了这个问题。另一个安装VS 2013的网站正在干扰某些方面。我没有安装它,问题就消失了。