已安装Python包IB但无法导入
大家能帮我解决一个问题吗?我用“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 个回答
这里有一些需要检查的事项:
首先,确认一下这个包的名字确实是 ib。你可以去你的 python/Lib/site-packages 文件夹里看看,确保那个文件夹的名字就是 ib。
其次,确保你使用的是安装这个包时的同一个 Python 版本。如果你是在 Python 3.3 上用 pip 安装的,然后又尝试在 Python 2.7 上使用,那是行不通的。如果你不确定自己正在使用哪个 Python,可以查看你的 PATH 变量,前面出现的那个会默认运行。
我也没能让 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
安装好之后,Python中的接口和Java API的接口几乎是一样的:IB API pdf
我发现查看IB API中包含的TWS测试客户端的Java代码很有帮助。
补充:IB现在有自己的原生Python API公开可用,所以如果你刚开始的话,使用那个可能更合适。它的接口和ibpy的Java封装差别很大。