量化投研Linux环境搭建
需求描述
搭建云原生的量化投研环境,跨平台代码调试运行,本地与服务器的低成本成本迁移。
软硬件准备
- CentOS服务器
- VsCode
- SecureCRT
具体流程
vscode配置
- 安装remote-ssh插件
安转之后 可以通过vscode远程到服务器进行文件操作以及命令行执行。
服务器配置
一些自定义目录:
-
安装的软件 /usr/local/soft/
-
下载数据 /downloads
-
系统中文支持
# 列出所有可用的公共语言环境的名称,包含有"zh_CN"
locale -a | grep “zh_CN”
# 如果没有安装中文语言包,则先安装中文语言包
yum groupinstall “fonts”
# 设置
vi /etc/profile
在最后面 添加一行 export LANG="zh_CN.UTF-8" 就可以了。
- root权限添加新用户,并且切换到新用户下
adduser xzr
passwd xzrpassword
su xzr
/etc/sudoers 修改xzr这个账号的sudo权限
- 安装python3(centos自带py2)
sudo yum -y install python3
默认是3.6 以上版本需要源码编译安装
安装依赖。
$ sudo yum install gcc openssl-devel bzip2-devel libffi-devel xz-devel -y
$ rpm -qa | grep openssl-devel
openssl-devel-1.0.2k-26.el7_9.x86_64
$ cd ~/downloads
$ wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
$ tar -xzf Python-3.7.0.tgz
$ cd Python-3.7.0/
$ ./configure --enable-optimizations --prefix=/usr/local/soft/python3/
$ make -j 16
$ make install
添加到 PATH
$ vim ~/.bashrc #添加一行
export PATH=/usr/local/soft/python3/bin:$PATH
使用设置
$ source ~/.bashrc
查看py位置
$ which python3
$ which pip3
查看版本号
$ python3 -V
顺便改下pip源
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
-
新建虚拟环境
usr目录下,sudo mkdir pythonenvs 用于存放虚拟环境
cd pythonenvs/ , sudo python3 -m venv venv_quant创建quant的虚拟环境
cd venv_quant/bin/, source activate激活当前虚拟环境(或者直接source /usr/pythonenvs/venv_quant/bin/activate)
(deactivate 退出虚拟环境) -
安转git
sudo yum install git -
在个人用户目录新建code目录
cd home/xzr/, mkdir code -
安装docker
# 删除旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 设置仓库
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 选择阿里云
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安转
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 启动
sudo systemctl start docker
# 测试
sudo docker run hello-world
docker基础操作 参考菜鸟教程
- 安装redis/jupyter/... ... docker镜像
容器之间需要互联 所以首先设置docker的网络
# 创建bridge模式的网络
docker network create -d bridge quant-network
# 查看
docker network ls
# 查找镜像版本
docker search redis
# 拉取
docker pull redis
# 查看镜像
docker images
# 运行容器
docker run -itd --name redis-quant --network quant-network -p 6379:6379 redis
# 测试
docker exec -it redis-quant /bin/bash
cd //, mkdir data/jupyter
docker pull jupyter/datascience-notebook
# Jupyter容器的默认工作目录为:/home/jovyan。容器工作目录映射主机目录为:/data/juypter,如果在work目录之外创建的文件将不会映射到主机目录,而是保存在容器内部。
docker run -d --name jupyter-quant --network quant-network -v /data/jupyter:/home/jovyan/work -p 8888:8888 -e JUPYTER_ENABLE_LAB=yes jupyter/datascience-notebook
# 设置权限
sudo chown 1000 /data/jupyter
# 查看token
docker logs jupyter-quant
docker pull nicolargo/glances
docker run --pid host --network host -itd nicolargo/glances /bin/sh -c "python3 -m glances -w"
# 端口会受到防火墙影响 暂时可以关闭
systemctl stop firewalld.service
# 永久关闭防火墙
systemctl disable firewalld.service
# 往现有网络添加容器
docker network connect quant-network new_container
# 查看网络ip
docker network inspect quant-network
-
通过vscode远程到服务器,安装python插件(本地的vscode拓展在远程是无法使用的)
(ctrl + shift + P 输入python:select interpreter 选择解释器 就可以远程调试代码) -
安装talib
yum -y install wget
yum install gcc
yum install python3-devel
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar zxvf ta-lib-0.4.0-src.tar.gz
cd ta-lib
./configure --prefix=/usr
make
make install
pip install ta-lib
效果展示
一些备注
# 登陆jupyter镜像的时候 需要输入token或者pwd
# 连接到docker的宿主机
docker ps
docker exec -it 3d097a4f85b2(你的jupyter的id) /bin/bash
jupyter server list(把token复制出来即可)
持续更新
安装clickhouse https://www.cnblogs.com/fanwenyan/p/18054589