已安装Python包IB但无法导入

3 投票
2 回答
3038 浏览
提问于 2025-04-17 22:36

大家能帮我解决一个问题吗?我用“pip install ib”安装了一个叫做ib(Interactive Broker)的Python包,安装过程中没有出错,成功了。但是,当我尝试导入ib时,系统却提示“没有名为ib的模块”。我还试着下载源代码,然后用python setup.py install来安装,但导入时还是失败。

我尝试安装其他包,它们都能正常工作。

你们有什么建议吗?

非常感谢。

附注1: 非常感谢你们的回答。我找到了问题的原因。安装时,它没有把所有内容放到一个名为ib的文件夹里,所以我现在有:

/usr/local/lib/python2.7/site-packages/ib/ext

/usr/local/lib/python2.7/site-packages/ib/opt

但是安装程序似乎把子文件夹ext和opt直接安装成了两个独立的模块。所以现在我有:

/usr/local/lib/python2.7/site-packages/ext

/usr/local/lib/python2.7/site-packages/opt

我可以导入ext和opt。但是现在的问题是,ext和opt里的方法是通过名字ib.ext.xxx来相互调用的。有没有人知道怎么把这两个文件夹ext和opt合并到ib这个名字下,让Python能识别ib为一个已安装的包?

谢谢。

2 个回答

0

这里有一些需要检查的事项:

首先,确认一下这个包的名字确实是 ib。你可以去你的 python/Lib/site-packages 文件夹里看看,确保那个文件夹的名字就是 ib。

其次,确保你使用的是安装这个包时的同一个 Python 版本。如果你是在 Python 3.3 上用 pip 安装的,然后又尝试在 Python 2.7 上使用,那是行不通的。如果你不确定自己正在使用哪个 Python,可以查看你的 PATH 变量,前面出现的那个会默认运行。

4

我也没能让 pip install ib 成功运行,原因和你提到的一样,另外它似乎也不支持最新版本的IB的API。所以,我不得不从https://github.com/blampe/IbPy克隆代码。

这个版本的ibpy在我这里和最新的IB API版本(截至2014年7月)都能正常工作。我已经成功使用了好几个月。我要做的就是把ibpy克隆到某个地方,然后从那里安装:

git clone https://github.com/blampe/IbPy
cd IbPy
python setup.py install

另外可以参考:http://www.quantstart.com/articles/Using-Python-IBPy-and-the-Interactive-Brokers-API-to-Automate-Trades

安装好之后,Python中的接口和Java API的接口几乎是一样的:IB API pdf

我发现查看IB API中包含的TWS测试客户端的Java代码很有帮助。

补充:IB现在有自己的原生Python API公开可用,所以如果你刚开始的话,使用那个可能更合适。它的接口和ibpy的Java封装差别很大。

撰写回答