Ubuntu16.04搭建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的下载文件,然后通过命令下载到服务器:

wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh

注意我们安装的是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, 安装命令如下:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

vi .bashrc

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

安装ta-lib

ta-lib 的github地址

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

wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz

解压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项目

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

python 你的程序文件名.py

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

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

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

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

kill 进程id // 如: kill 34984

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

exit

结束

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容