我是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
答案 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)
我有类似的问题。我必须:
然而,我仍然有一个奇怪的问题,我必须同时打开Excel,并且一个单元格保存值为MTX | DATA!EURUSD.SON,以便python脚本返回有效的引用。否则,我只是将“N / A”作为返回值。
@Aykut你也遇到过这个问题吗?