跳转到内容

运行 setup.py 文件

进入 source/pythonclient 目录后,就可以安装官方 Python client。这个步骤的目标是把源码目录里的 ibapi 包安装到你真正用来运行策略或测试脚本的 Python 环境中。

推荐命令是:

Terminal window
python -m pip install .

这里的 . 表示“这个目录”。也就是说,这条命令必须在包含 setup.pysource/pythonclient 目录里执行。

先确认所在目录:

Terminal window
cd

确认有 setup.py

Terminal window
dir setup.py

然后安装:

Terminal window
python -m pip install .

macOS / Linux 写法类似:

Terminal window
python3 -m pip install .

如果你使用虚拟环境,应使用虚拟环境里的 Python,而不是系统 Python。

Windows 示例:

Terminal window
.\.venv\Scripts\python.exe -m pip install .

macOS / Linux 示例:

Terminal window
./.venv/bin/python -m pip install .

如果终端不在项目目录,而是在 TWS API 的 pythonclient 目录里,虚拟环境路径可能不适合写成相对路径。此时可以直接使用完整 Python 路径:

Terminal window
"D:\你的项目目录\.venv\Scripts\python.exe" -m pip install .

Windows 路径带空格时,把完整路径放在英文双引号里。

官方 setup.py 会把 ibapi 安装为 Python 包。安装完成后,脚本里才能这样导入:

from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
from ibapi.order import Order

官方包的安装信息包含这些要点:

项目含义
name="ibapi"安装后的包名是 ibapi
packages=["ibapi", "ibapi/protobuf"]安装主体模块和 protobuf 相关模块。
install_requires=["protobuf==5.29.5"]需要指定版本的 protobuf
version=get_version_string()版本来自官方 API 包自身。

因此,安装过程不只复制 Python 文件,还会检查并安装对应版本的依赖。

假设官方 API 包目录为:

D:\TWS API\source\pythonclient

用明确的虚拟环境 Python 执行:

Terminal window
"D:\your-project\.venv\Scripts\python.exe" -m pip install .

安装结果显示:

Processing d:\tws api\source\pythonclient
Requirement already satisfied: protobuf==5.29.5
Successfully installed ibapi-10.47.1

再确认导入:

Terminal window
"D:\your-project\.venv\Scripts\python.exe" -c "import ibapi; from ibapi import get_version_string; print(ibapi.__file__); print(get_version_string())"

输出示例:

D:\your-project\.venv\lib\site-packages\ibapi\__init__.py
10.47.1

用户自己的路径和版本可能不同。判断是否成功的关键是:同一个 Python 能导入 ibapi,并且能打印出 ibapi.__file__

不要优先写成:

Terminal window
pip install .

因为 pip 命令可能来自另一个 Python 环境。更稳妥的写法是:

Terminal window
python -m pip install .

这样可以明确表示:用这个 python 对应的 pip 来安装。

如果你已经决定使用某个虚拟环境,最好更明确:

Terminal window
"D:\你的项目目录\.venv\Scripts\python.exe" -m pip install .

安装和运行示例脚本都使用同一个 Python,后续排查会简单很多。

错误或现象常见原因处理方式
Directory '.' is not installable所在目录没有 setup.py先进入 source/pythonclient
No such file or directory: setup.py目录错了,或 API 包不完整。重新确认 TWS API 包目录。
pip 能安装,但运行脚本找不到 ibapi安装和运行使用了不同 Python。分别打印 sys.executableibapi.__file__
Windows 提示某个 python.exe 不是命令相对路径从所在目录算起后不成立。改用完整 Python 路径并加英文双引号。
看到 Using legacy 'setup.py install'Python 环境没有 wheel,pip 退回旧安装流程。只要最终 Successfully installed ibapi,通常不影响使用。
看到 pip 升级提示pip 版本较旧。不是 TWS API 连接问题,可等安装稳定后再处理。

完成这一页,只代表 Python 可以导入官方 ibapi。它还不代表:

  • TWS / IB Gateway 已经启动。
  • API Socket 端口已经打开。
  • 账户已经登录。
  • 行情权限已经具备。
  • 订单参数已经正确。

后续验证应该先从最小连接脚本开始,例如请求服务器时间,再逐步测试合约、行情和订单预览。

  • IBKR TWS API Documentation:官方在 Updating The Python Interpreter 主题中说明进入 Python client 源码目录后运行安装脚本,以更新指定 Python 环境中的 TWS API Python 包。