无法使用python进行DDE连接。 win32ui似乎无法正常工作

时间:2013-04-05 13:28:19

标签: dde

我是Python(2.7版)的新手。我一直在使用一些使用DDE功能捕获“实时市场数据”的excel工作簿 - 由一个市场数据提供商(“Matriks”,如果有关系)提供服务。

为了简化我的整个流程,我决定绕过这个excel工作簿来进行数据捕获,相反,我决定使用python代码来执行相同的任务。

问题是, 1)当我使用Pythonwin运行代码(下面提供)时,我得到“错误:无法创建服务器”。

2)我得到“ImportError:这必须是一个MFC应用程序 - 首先尝试'导入win32ui'”当我使用IDLE运行这个非常简单的代码时。

(当然,我下载并运行win32ui。)

感谢任何帮助。

# DDE code
# excel equivalent of this code is: =MTX|DATA!EURUSD.SON
import win32ui
import dde

s=dde.CreateServer()
s.Create("MTX")
c=dde.CreateConversation(s)
c.ConnectTo("DATA","SON")
c.Connected()
c.Request("EURUSD")

# returns
# Traceback (most recent call last):
#  File "C:\IQTrader\_script\_obj\DDEClient.py", line 12, in <module>
#   import dde
# ImportError: This must be an MFC application - try 'import win32ui' first

2 个答案:

答案 0 :(得分:6)

问题已解决。错误的根本原因是pywin模块。

面对同样问题的人: 1.完全删除pythonwin和pywin32_system32 folderes(大概在C:\ Python27 \ Lib \ site-packages下)

2.检查你的pywin32版本;使用v2.7的人应该是214(而不是218)

3.从适当的资源下载pywin32-214.win32-py2.7(一个是:http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/

4.一切都应该没问题。

答案 1 :(得分:1)

我有类似的问题。我必须:

  1. 卸载Python 2.7 64位
  2. 安装Python 2.7 32位
  3. 使用pywin32版本214
  4. 以管理员身份运行cmd.exe,以便c.ConnectTo()成功连接
  5. 然而,我仍然有一个奇怪的问题,我必须同时打开Excel,并且一个单元格保存值为MTX | DATA!EURUSD.SON,以便python脚本返回有效的引用。否则,我只是将“N / A”作为返回值。

    @Aykut你也遇到过这个问题吗?