3

我是 Python 新手(2.7 版)。很长一段时间以来,我一直在使用一些 Excel 工作簿,这些工作簿使用 DDE 功能来捕获“实时市场数据”——由一个市场数据提供者(“Matriks”,如果有的话)提供服务。

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

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

2) 当我使用 IDLE 运行这个非常简单的代码时,我得到“ImportError: This must be an MFC application - try 'import win32ui' first”。

(当然,我下载并运行了 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
4

2 回答 2

6

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

对于那些面临同样问题的人: 1. 完全删除 pythonwin 和 pywin32_system32 文件夹(大概在 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.一切都应该没问题。

于 2013-04-10T07:12:28.230 回答
1

我有一个类似的问题。我不得不:

  1. 卸载 Python 2.7 64 位
  2. 安装 Python 2.7 32 位
  3. 使用 pywin32 版本 214
  4. 以管理员身份运行 cmd.exe,以便 c.ConnectTo() 连接成功

但是,我仍然遇到一个奇怪的问题,即我必须同时打开 Excel 并使用一个包含值 =MTX|DATA!EURUSD.SON 的单元格,以便 python 脚本返回有效的报价。否则,我只会得到“N/A”作为返回值。

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

于 2013-09-18T21:12:24.517 回答