1. 最好不要用太高的Python版本,防止有些库兼容问题,我个人尝试3.8, 3.9 都可以。按照官网,3.9只能使用源码安装。
2. 如果macos pip install . 失败,具体原因可能有没有安装hdf5,没有安装cmake等等,按照提示信息macos使用brew install hdf5, brew install cmake就可以了(没有安brew先命令行安装brew)。总之这一步的所有报错必须彻底解决,不然即使可以import qlib成功、可以下载数据,后面的很多依赖库还要手动安装。
3. 如果通过源码安装,已经pip install . 成功,可以import qlib,但在qlib.init()找不到qlib.data._libs.rolling:
这其实是因为在我们的工程目录下,只有qlib.data._libs.rolling.pyx,这是cython编译需要的原始文件,执行pip install . 时,首先编译成.c再编译成.so (linux, macos) 或者.pyd (windows),这些文件结果在python site-packages中。以anaconda虚拟环境为例,路径可能为:anaconda/envs/xxxx/lib/python3.9/site-packages/qlib,在这里面可以找到.so或者.pyd文件。
当我们运行工程目录下,examples/tutorials/detailed_workflow.ipynb下,会在工程目录/qlib/data下找(从报错信息中可以看到是在这个文件路径下报错)编译结果,但是没有找到。
这里建议把anaconda/envs/xxxx/lib/python3.9/site-packages/qlib之下的内容整体复制merge到工程目录下的qlib文件夹内容。在哪个目录下报错找不到就复制到该目录下。
当然,理论上这也可以通过修改系统路径实现。
近期在macos, windows, linux上各安装了一遍qlib,经历了很多波折,不得不说qlib目标缺乏编程知识的开发人员,却在环境这块有这么大的问题,仍然有待改进。有其他相关问题欢迎留言讨论!