2.8 包管理

适用版本 V3 WindowsLinux(pipx)

本篇重点:本篇讲策略需要额外的 Python 库时,怎么在包管理里安装、升级和删除。

1 用之前:装好 Python

khQuant 安装版自带运行用的 Python 和常用库(numpy、pandas 等),但它的包管理不使用自带的 pip,而是调用你电脑上的 python 或 py 命令去下载,再装进 khQuant 自己的目录,不会改动你电脑上的 Python 环境。

所以第一次用之前:

  1. 从 Python 官网下载 64 位 Python 安装程序(3.11 或更新的版本都可以),安装时勾选「Add python.exe to PATH」。
  2. 装完后关掉 khQuant 再重新打开,让它读到新的 PATH。

没装 Python 时点安装,输出框会依次显示三次「命令启动失败」,最后是「外部 pip 调用失败」,并弹出「安装失败」:

没装 Python 时安装失败的输出
没装 Python 时安装失败的输出

2 安装一个包

工具栏「设置」→「包管理」标签页。页面上写着安装目录(默认 C:\Program Files (x86)\khQuant\user_packages)。

「包管理」标签页
「包管理」标签页
  1. 在输入框里写包名,例如 scikit-learn。
  2. 点「安装/更新」(或按回车)。按钮变成「安装中…」,输出框实时显示 pip 的输出。
  3. 结束后弹出「安装成功」或「安装失败」。安装成功的包,策略里直接 import 就能用;如果没生效,重启软件。
安装中:按钮变成「安装中...」,下方实时显示 pip 输出
安装中:按钮变成「安装中…」,下方实时显示 pip 输出
安装完成:弹出「安装成功」。可以看到依赖(numpy、scipy 等)也被一起装进来了
安装完成:弹出「安装成功」。可以看到依赖(numpy、scipy 等)也被一起装进来了

这一页点了就装,不需要再点「保存设置」。同一时间只能装一个任务,装完之前不要关设置窗口。

输入框里的内容会原样交给 pip,所以可以这样写:

想做什么输入框里写
安装scikit-learn
指定版本scikit-learn==1.5.2
一次装多个scikit-learn statsmodels
升级已经装过的-U scikit-learn
临时换下载镜像-i https://pypi.tuna.tsinghua.edu.cn/simple scikit-learn
注意

只写包名再点「安装/更新」,已经装过的包不会被升级,界面却会显示「安装成功」。要升级,请写 -U 包名。

输入的是 Python 标准库的名字(如 json)时,会弹出标题为「安装成功」的窗口,内容说明它是标准库、无需安装,并没有装任何东西。

3 装到了哪里、谁能用

  • 位置:<安装目录>\user_packages。
  • 策略文件开头写了 from khQuantImport import *(自带案例和新建模板都有这一行)时,软件会自动把这个目录放进 Python 的搜索路径,后面的 import 就能找到。所以第三方库的 import 要写在这一行之后。
  • 在界面里装的包,kh 命令行和 Web 回测同样能用。
  • 覆盖安装新版本或卸载 khQuant 时,user_packages 会保留。

4 限制

  • 只能装提供 wheel(预编译包)的库。只发布源码包的库,即使是纯 Python 写的,也会报「Could not find a version that satisfies the requirement」。
  • 会连带安装依赖。依赖链上的库会一起装进 user_packages,可能比较大。如果依赖带来了和自带版本不同的 numpy、pandas,可能出现兼容问题,安装时尽量指定和软件兼容的版本。
  • 没有卸载按钮。关掉软件后,到 user_packages 里删掉对应的包文件夹和 *.dist-info 文件夹;想全部清空就删掉整个 user_packages。在 Program Files 下删除需要管理员权限。
  • 下载用的是系统 Python 的 pip 设置,镜像可以在 pip 的配置文件里设,也可以每次用 -i 指定。

5 macOS 和 Linux

  • macOS:没有包管理页,目前不支持在 Mac 版里安装第三方库。
  • Linux:用 pipx 安装的 khQuant 在独立的虚拟环境里(Docker 镜像要自己基于镜像另装),给它加库用 pipx 自带的命令:pipx inject khquant 包名。

常见问题

问:点安装后提示「外部 pip 调用失败」?
答:这句只表示三种 pip 调用方式都没有成功返回,要往上看具体原因:三次都是「命令启动失败」,才说明电脑上没有可用的 Python,安装 64 位 Python(勾选加入 PATH),重启 khQuant 后再装;如果是 pip 自己的报错(找不到版本、网络超时等),按那条报错处理,见下一问和第 4 节。

问:提示「Could not find a version that satisfies the requirement」?
答:包名写错了,或者这个包没有适用于 Windows 64 位、Python 3.11 的 wheel。核对包名,或者换一个版本、换一个替代库。

问:显示安装成功,但版本没变?
答:没加 -U。写 -U 包名 重新安装。

问:策略里 import 报 ModuleNotFoundError?
答:确认策略开头有 from khQuantImport import *,第三方库的 import 写在它后面;再确认包确实装进了 user_packages。

本篇基于 V3.4.1.10 编写。

×
没有账号?注册  忘记密码?

风险提示

投资有风险,开户需谨慎。本系统仅为投资者提供量化交易相关的数据处理与分析工具,不构成任何投资建议。 请您在审慎思考后作出选择。特别声明:本系统对您与券商之间的交易、合作不承担任何法律责任。 市场有风险,投资需谨慎。

© 2024 khQuant看海量化回测平台 版权所有

官网:www.khsci.com/khQuant