Finology 大数据金融

通过大数据以量化金融

我的操作系统是macOS Catalina 10.15.7
Python 3.8

通过源码安装Qlib,记录一下掉过的坑。

总的来说,按照官方说明文档,执行安装命令,一般不会有问题。

cython一定要更新,upgrade

pip要和python环境里面的版本一致,不确定是否一致,可以python -m pip install xxx的方式。

也可以通过pip show pip查看位置。

通过源码安装,pip install .,尽量不通过 pip install pyqlib来安装,更不能通过 python setup.py install来安装。

qlib安装在python=3.8下面,3.9目前支持不好。

创建python=3.8的虚拟环境后,想要在 jupyter lab 里面的 kernel select 中显示出来,需要在3.8的虚拟环境中执行命令:
pip install ipykernel

如果错误的添加了kernel,需要这样删除:jupyter kernelspec remove kernel_name

在python3.8的环境里面,要安装pip install ipywidgets,还有pip install tqdm

安装好了以后,运行qlib/examples/workflow_by_code.ipynb,在train model这里,有报错:

意思就是libomp这个库文件没有被加载到。

后来尝试了很多方法,按网上说的,都是brew install libomp

我的macOS版本太旧,brew都已经不支持了。要升级到macOS 12,但我的笔记本又不支持。

然后又找了各种办法通过源码来安装libomp。

又去搞了半天编译工具。

最后通过简单的两步搞定了问题。

1
2
3
4
5
6
7
8
9
$ pip uninstall lightgbm

Found existing installation: lightgbm 4.2.0
Uninstalling lightgbm-4.2.0:
Would remove:
/opt/anaconda3/envs/py38/lib/python3.8/site-packages/lightgbm-4.2.0.dist-info/*
/opt/anaconda3/envs/py38/lib/python3.8/site-packages/lightgbm/*
Proceed (Y/n)? y
Successfully uninstalled lightgbm-4.2.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
$ conda install lightgbm
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

environment location: /opt/anaconda3/envs/py38

added / updated specs:
- lightgbm


The following packages will be downloaded:

package | build
---------------------------|-----------------
blas-1.0 | openblas 45 KB
libgfortran-5.0.0 |11_3_0_hecd8cb5_28 142 KB
libgfortran5-11.3.0 | h9dfd629_28 1.4 MB
libopenblas-0.3.21 | h54e7dc3_0 4.9 MB
lightgbm-4.1.0 | py38hcec6c5f_0 1.4 MB
llvm-openmp-14.0.6 | h0dcd299_0 288 KB
numpy-1.24.3 | py38h57a7bef_0 12 KB
numpy-base-1.24.3 | py38hc93c6d9_0 6.5 MB
pooch-1.7.0 | py38hecd8cb5_0 85 KB
scipy-1.10.1 | py38h9034365_1 20.9 MB
------------------------------------------------------------
Total: 35.8 MB

The following NEW packages will be INSTALLED:

blas pkgs/main/osx-64::blas-1.0-openblas
libgfortran pkgs/main/osx-64::libgfortran-5.0.0-11_3_0_hecd8cb5_28
libgfortran5 pkgs/main/osx-64::libgfortran5-11.3.0-h9dfd629_28
libopenblas pkgs/main/osx-64::libopenblas-0.3.21-h54e7dc3_0
lightgbm pkgs/main/osx-64::lightgbm-4.1.0-py38hcec6c5f_0
llvm-openmp pkgs/main/osx-64::llvm-openmp-14.0.6-h0dcd299_0
numpy pkgs/main/osx-64::numpy-1.24.3-py38h57a7bef_0
numpy-base pkgs/main/osx-64::numpy-base-1.24.3-py38hc93c6d9_0
pooch pkgs/main/osx-64::pooch-1.7.0-py38hecd8cb5_0
scipy pkgs/main/osx-64::scipy-1.10.1-py38h9034365_1


Proceed ([y]/n)? y

核心错误就出在我们之前都是通过pip来安装的,像这种有大量依赖的库,最好还是要通过conda install来安装。

最后qlib的work_flow在macOS下成功运行。

执行 conda 命令时,报错。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
$ /opt/anaconda3/bin/conda create -n py38 python=3.8`

environment variables:
CIO_TEST=<not set>
CLASSPATH=.:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/lib/
tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/H
ome/lib/dt.jar
CONDA_DEFAULT_ENV=base
CONDA_EXE=/opt/anaconda3/bin/conda
CONDA_PREFIX=/opt/anaconda3
CONDA_PROMPT_MODIFIER=(base)
CONDA_PYTHON_EXE=/opt/anaconda3/bin/python
CONDA_ROOT=/opt/anaconda3
CONDA_SHLVL=1
CURL_CA_BUNDLE=<not set>
GOPATH=/Users/simon/Development/workspace/go
PATH=/opt/anaconda3/bin:/Users/simon/.yarn/bin:/Users/simon/.config/yarn/gl
obal/node_modules/.bin:/Users/simon/opt/anaconda3/bin:/Users/simon/opt
/anaconda3/bin:/anaconda3/bin:/Library/Frameworks/Python.framework/Ver
sions/3.6/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Conten
ts/Home/bin:/Users/simon/Development/maven/apache-maven-3.6.1/bin:/Use
rs/simon/.yarn/bin:/Users/simon/.config/yarn/global/node_modules/.bin:
/opt/anaconda3/bin:/opt/anaconda3/condabin:/Users/simon/opt/anaconda3/
bin:/Users/simon/opt/anaconda3/bin:/anaconda3/bin:/Library/Frameworks/
Python.framework/Versions/3.6/bin:/Library/Java/JavaVirtualMachines/jd
k1.8.0_92.jdk/Contents/Home/bin:/Users/simon/Development/maven/apache-
maven-3.6.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applicat
ions/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/usr/local/go
/bin:/Users/simon/Development/workspace/go/bin:/usr/local/go/bin:/User
s/simon/Development/workspace/go/bin
REQUESTS_CA_BUNDLE=<not set>
SSL_CERT_FILE=<not set>

active environment : base
active env location : /opt/anaconda3
shell level : 1
user config file : /Users/simon/.condarc
populated config files : /Users/simon/.condarc
conda version : 4.13.0
conda-build version : 3.18.11
python version : 3.7.6.final.0
virtual packages : __osx=10.15.7=0
__unix=0=0
__archspec=1=x86_64
base environment : /opt/anaconda3 (writable)
conda av data dir : /opt/anaconda3/etc/conda
conda av metadata url : None
channel URLs : https://pypi.ricequant.com/simple/osx-64
https://pypi.ricequant.com/simple/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/osx-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/osx-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
package cache : /opt/anaconda3/pkgs
/Users/simon/.conda/pkgs
envs directories : /opt/anaconda3/envs
/Users/simon/.conda/envs
platform : osx-64
user-agent : conda/4.13.0 requests/2.22.0 CPython/3.7.6 Darwin/19.6.0 OSX/10.15.7
UID:GID : 501:20
netrc file : None
offline mode : False


An unexpected error has occurred. Conda has prepared the above report.

If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers?

[y/N]:

解决方案:

1
2
3
4
5
6
7
8
9
$ conda config --show-sources
==> /Users/somebody/.condarc <==
ssl_verify: True
channels:
- https://pypi.ricequant.com/simple
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
show_channel_urls: True

删除 /Users/somebody/.condarc,就可以解决了。

运行vnpy 3.9.0时,命令行提示如下异常:

Faile to import cython option pricing model, please rebuild with cython in cmd.

进入模型文件夹 /vnpy_optionmaster/vnpy_optionmaster/pricing/cython_model/black_scholes_cython

执行命令:

$ python setup.py build_ext --inplace

生成的.so.pyx拷贝到目录/site-packages/vnpy_optionmaster/pricing下面就可以解决了。

0%