手记

Ubuntu16.04搭建python 开发环境-Python数字货币量化交易

开篇

量化开发首选的语言还是python, 还是那句话: 人生苦短,我用python. 把自己回测好的策略进行实盘交易,可以基于gekko 进行精交易,但是gekko的杠杆交易还有支持的平台不是很多,所以有些回测好的策略,还是通过python来进行实盘交易,那么今天我们来讲讲如何在ubuntu16.04服务器上进行部署环境的搭建。

准备工作

  • 创建子用户
    当然我们也是可以在root用户下面进行操作的,但是后面要homebrew工具以及ta-lib等第三方软件的时候,可能会有限制,所以我们先创建子用户来操作比较方便

sudo adduser bot // 创建bot用户

Adding user `bot' ...
Adding new group `bot' (1000) ...
Adding new user `bot' (1000) with group `bot' ...
The home directory `/home/bot' already exists.  Not copying from `/etc/skel'.
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for bot
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y

然后输入bot用户的密码就可以了,然后输入y就可以了。记住,此时bot用户的文件目录是:/home/bot

sudo adduser bot sudo // 给bot用户添加sudo权限

然后切换到sudo 用户

su - bot // 然后输入bot用户的密码就可以了

或者通过ssh 进入bot用户

ssh bot@xxx.xxx.xxx.xxx // xxx.xxx.xxx.xxx 为你服务器的ip地址。

接下来更新下依赖, 依次输入下面四个命令。

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

安装Anaconda

anaconda 一大好处就是帮助我们把很多科学计算的库都安装好,还有就是帮助我们很容易创建虚拟环境, 如下面两句命令就搞定虚拟环境的安装,省去我们很多麻烦.

conda create -n name python=3.6 //创建名字为name的虚拟环境
conda activate name // or source activate name 激活虚拟环境
conda deactivate // deactivate name 取消激活虚拟环境。

Anaconda 的官网地址为:下载地址
我们找到anaconda的下载文件,然后通过命令下载到服务器:

注意我们安装的是python 3.7的版本。当然要用python2.7的话可以通过虚拟环境来安装使用。
下载好后,执行bash命令进行安装:

bash Anaconda3-5.3.0-Linux-x86_64.sh

bash 后面的为你本地下载好的Anaconda 的文件名,然后等带安装就可以了。但是安装完成后,你还是发现没法使用conda命令,这时候要配置下:

sudo vi .bashrc

添加下面这段话:

export PATH=/home/bot/anaconda3/bin:$PATH // PATH后面的内容为为你anaconda3的安装目录。

然后执行命令, 或则推出终端重新登录也可以。

source .bashrc

这时候你输入Python, 如果现实为如下内容就说明你的anaconda安装好了。

Python 3.7.0 (default, Jun 28 2018, 13:15:42) 
[GCC 7.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.

这时候,你可以利用pip或则conda安装第三方库了。

安装homebrew

安装homebrew是为了方便我们安装python ta-lib的依赖,ta-lib是我们用来计算技术指标常用的库,当然你也可以使用tulip也可以。废话不多说,把homebrew 的github地址贴一下hombrew github, 安装命令如下:

vi .bashrc

export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH" // 添加路径。

安装ta-lib

brew install ta-lib

pip install ta-lib

如果安装错误,或者类似如下问题的:

  gcc -pthread -B /home/bot/anaconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/bot/anaconda3/lib/python3.7/site-packages/numpy/core/include -I/usr/include -I/usr/local/include -I/opt/include -I/opt/local/include -I/home/bot/anaconda3/include/python3.7m -c talib/_ta_lib.c -o build/temp.linux-x86_64-3.7/talib/_ta_lib.o
  talib/_ta_lib.c:526:28: fatal error: ta-lib/ta_defs.h: No such file or directory
  compilation terminated.
  error: command 'gcc' failed with exit status 1

ailed building wheel for TA-Lib
  Running setup.py clean for TA-Lib
Failed to build TA-Lib
Installing collected packages: TA-Lib
  Running setup.py install for TA-Lib ... error
    Complete output from command /home/bot/anaconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-3_y5lywf/TA-Lib/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-uvh9lr84/install-record.txt --single-version-externally-managed --compile:
    /tmp/pip-install-3_y5lywf/TA-Lib/setup.py:79: UserWarning: Cannot find ta-lib library, installation may fail.
      warnings.warn('Cannot find ta-lib library, installation may fail.')

那么可能是是homebrew默认的配置错误了,需要手动编译ta-lib。

  • 下载ta-lib

解压ta-lib

tar -xzvf ta-lib-0.4.0-src.tar.gz

cd ta-lib/

./configure --prefix=/usr

make

sudo make install

最后安装Ta-Lib

pip install TA-Lib

这下应该就不会有问题了。 你可以开始使用ta-lib 开发和运行你的策略了。

安装fabric3进行自动化部署

如果有需要的话可以利用fabric3 进行自动化运维部署, 这里可以参考下这篇博客。

pip3 pip install fabric3

运行python项目

编写好的代码如果要在服务器上运行,直接使用命令执行:

也可以运行,但是退出终端后,程序就会终止,可以使用nohup命令进行守护进程的方式运行

nohup python -u 你的程序文件名.py > nohup.txt 2>&1 &

ps -aux | grep 你的程序文件名.py // 获取程序的进程id

执行完成后会返回你的进程id, 当然终止的话,可以通过kill命令终止,或者通过ps 命令查看进程编号,然后在执行kill的命令

kill 进程id // 如: kill 34984

最后推出服务的时候,通过exit来退出

exit

结束

文章主要讲了开发环境的搭建,以及安装相关依赖库,以及项目的部署等。希望有从事数字货币量化交易的,可以多多沟通,交流学习,共同进步。

1人推荐
随时随地看视频
慕课网APP