1. 安装最新即可,实际的版本号可能不一样
  2. 安装过程较复杂,建议用一台单独的vm安装,能做成docker image最好

基础软件

  1. nginx-1.10.0: sudo apt-get install nginx
  2. Anaconda-4.2.0:
wget https://repo.continuum.io/archive/Anaconda2-4.2.0-Linux-x86_64.sh
bash Anaconda2-4.2.0-Linux-x86_64.sh
  1. mongodb-2.6.10: sudo apt-get install mongodb
  2. R-3.3.2:
#安装过程:https://www.datascienceriot.com/how-to-install-r-in-linux-ubuntu-16-04-xenial-xerus/kris/
#keyserver.ubuntu.com无响应:http://superuser.com/a/621258
sudo echo "deb http://cran.rstudio.com/bin/linux/ubuntu xenial/" | sudo tee -a /etc/apt/sources.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
gpg -a --export E084DAB9 | sudo apt-key add -
sudo apt-get update
sudo apt-get install r-base r-base-dev
#安装R-Studio:这步可能不是必须的
sudo apt-get install gdebi-core
wget https://download1.rstudio.org/rstudio-1.0.44-amd64.deb
sudo gdebi -n rstudio-1.0.44-amd64.deb
  1. rabbitmq-3.6.6:
#参见https://www.rabbitmq.com/install-debian.html,因为apt-get源里的版本比较旧,因此推荐下deb版
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_6/rabbitmq-server_3.6.6-1_all.deb
sudo gdebi -n rabbitmq-server_3.6.6-1_all.deb
#因为缺少erlang、socat等依赖,安装会出错,用下面的安装其他依赖
sudo apt-get -f install

内部依赖

源码依赖的qi4trade有多个版本,目前最新的在svn://OptionMMService/StrategyContainer/Python下面,注意把Qi4Trade和SITxuk这2个目录都拷过去。

  1. Qi4Trade:
cd Qi4Trade/trunk
#默认是增量安装,如果搞错了版本,可以python setup.py install --force强制覆盖安装,参见http://stackoverflow.com/a/21788775/2314422
python setup.py install
  1. SITxuk:
#这是个R包,安装过程:http://kbroman.org/pkg_primer/pages/build.html
R CMD build SITxuk
sudo R CMD INSTALL SITxuk_0.1.0.tar.gz
#进R验证包是否安装成功
R
library(SITxuk)
  1. ndparser:
#位于Qi4Trade/trunk/qi4trade/ndparser,是个CPython extension
Qi4Trade/trunk/qi4trade/ndparser
python setup.py install
#如果编译失败,可以直接把其他机器上编译好的.so文件拷过来
cp ndparser.so ~/anaconda2/lib/python2.7/site-packages/
cp ndparser-1.0-py2.7.egg-info ~/anaconda2/lib/python2.7/site-packages/

外部依赖

外部依赖有很多,遇到一个装一个,包括但不限于以下列出的

apt | yum

如果yum安装库不够新,有一部分库需要手动安装

  • blas : make
  • lapack: make 如果提示找不到BLAS,修改make.inc里面的BLASLIB参数
  • curl: make
  • zlib: make
  • pcre: make
  • ta-lib:
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar xfv ta-lib-0.4.0-src.tar.gz
cd ta-lib
./configure
make & sudo make install
#但仍然会报talib import error,参见https://github.com/mrjbq7/ta-lib/issues/6
vim ~/.bashrc
#在最后添加
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
yum install gcc-fortran
yum install gcc-gfortran
yum install gcc-c++
yum install readline-devel
yum install libXt-devel
yum install xz-devel
yum install pcre-devel
yum install zlib
yum install libcurl-devel

R

configure时候有一些依赖的库找不到的“错误”,但是实际上已经安装好了,可以通过修改configure脚本强制去掉某些报警

./configure --enable-R-shlib --with-lapack --with-blas
make
make install

pip

pip的配置文件路径:~/.pip/pip.conf or ~/.config/pip/pip.conf

[global]
index-url=http://pypi.doubanio.com/simple
[install]
trusted-host=http://pypi.doubanio.com

安装前可以用pip search libName查看是否有这个包,以及包的正确名字(区分大小写)。比如google.protobuf在pip里就叫protobuf

也可以google看包的名字,比如grpc.beta叫grpcio

pip install celery
pip install flasgger
pip install flask
pip install rpy2
pip install cvxopt
pip install arch
pip install pymongo grpc protobuf pip download grpc grpcio grpcio-tools #下载离线包和依赖
pip install grpc*.whl --no-index --find-links "dir" #安装离线包

若干问题

  1. 运行过程中报:lib/libgomp.so.1: version gomp_4.0 not found

    大约是安装某个库时没有将gomp编译进去,导致libgomp.so.1.0.0中不包含gomp_4.0。

    解决办法是:对比正常运行的机器上libgomp.so文件的大小和版本,如果不匹配,拷贝过去覆盖
mv anaconda2/lib/libgomp.so.1.0.0 anaconda2/lib/libgomp.so.1.0.0.bak
mv libgomp.so.1.0.0 anaconda2/lib/
chmod +x anaconda2/lib/libgomp.so.1.0.0
  1. cvxopt安装会报错:cvxopt 1.1.9 missing umfpack.h

    因为Ubuntu 16.04包管理里带了SuiteSparse,所以cvxopt-1.1.9的版本把SuiteSparse的代码移出去了

    但其实要自己下载编译,参见https://github.com/cvxopt/cvxopt/issues/78
wget http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.5.3.tar.gz
tar -xf SuiteSparse-4.5.3.tar.gz
vim ~/.bashrc
#在最后添加
export CVXOPT_SUITESPARSE_SRC_DIR=$(pwd)/SuiteSparse
pip install cvxopt
  1. 运行时报:找不到环境变量FLASK_SETTINGS

    因为app.config.from_envvar('FLASK_SETTINGS'),添加环境变量指向 dev | qa 的config即可

    参见这篇http://flask.pocoo.org/docs/0.12/config/ 和 这个回答http://askubuntu.com/a/58828
vim ~/.bashrc
#在最后添加
export FLASK_SETTINGS=/home/alex/PycharmProjects/portfolio-web/trunk/api/dev
  1. 回溯安装过程

    • history | grep以及.bash_history文件很有用
    • 默认的HISTSIZE=1000,修改方式如下。改为-1:无限制、0:禁用history
vim ~/.bashrc
export HISTSIZE=10000
echo $HISTSIZE

python项目运行环境安装小结的更多相关文章

  1. 用docker搭建python项目运行环境

    Docker Hub镜像加速器 安装docker: curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-eng ...

  2. 安装python虚拟运行环境,linux下轻松切换python2和python3

    一.查询系统采用的python版本 $ python --version Python 3.7.3 系统采用的python版本为3.7.3 以下查询py3和py2的目录: $ which python ...

  3. linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    一.安装JDK 1.卸载旧版本或者系统自带的JDK (1)列出所有已安装的JDK rpm -qa | grep jdk (2)卸载不需要的JDK yum -y remove 安装包名称 2.下载并解压 ...

  4. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  5. Atitit linux获取项目运行环境版本

    Atitit linux获取项目运行环境版本 1.1. Nginx版本1 1.2. Php版本1 1.3. Mysql版本2 1.4. Redis版本2 1.1. Nginx版本 [root@iZ25 ...

  6. python新手之一环境安装

    今天开始学习python,首先环境安装 1.在https://www.python.org/downloads/下载python2.X或者3.X(ps:这里建议下载32位的python ,因为64位p ...

  7. Tsung运行环境安装(转)

    转自:http://www.cnblogs.com/tsbc/p/4272974.html#_Toc372013359 tsung Tsung运行环境安装 检查安装一下依赖包,以免在安装的时候报错.( ...

  8. Python 项目隔离环境virtualenv--venv

    virtualenv 用来为一个应用创建一套“隔离”的python运行环境. 先安装virtualenv: pip3 install virtualenv 再进入项目目录,或者创建一个项目目录并进入, ...

  9. 如何利用Intellij Idea搭建python编译运行环境 (转)

    首先进入Intellij Idea的官方网站:点击打开链接 点击download,选择旗舰版进行下载.网上的破解教程很多,也可以注册一个学生账号拿到一年的免费试用权. 安装过程不再细说,第一次打开选择 ...

随机推荐

  1. day03 Python字典dict的增删查改及常用操作

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可 ...

  2. webservice 开发规范

    JAVA中共有三种WebService规范,分别是:JAXM&SAAJ.JAX-WS(JAX-RPC).JAX-RS 下面类分别简要介绍一下这三个规范 1. JAX-WS (Java API ...

  3. 51Nod 1185 威佐夫游戏 V2

    有2堆石子.A B两个人轮流拿,A先拿.每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取.拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出2堆石子的数量, ...

  4. window 系统虚拟机安装mac系统

    前言: 我们用的是虚拟机,物理机安装一是复杂,二是兼容性实在太差,所以不推荐使用,除非你的电脑配置不够.这篇文章很长,如果想安装的话建议收藏,否则你有可能记不住步骤,我尽量缩减步骤,所以如果你想安装黑 ...

  5. P4027 [NOI2007]货币兑换(斜率优化dp+cdq分治)

    P4027 [NOI2007]货币兑换 显然,如果某一天要买券,一定是把钱全部花掉.否则不是最优(攒着干啥) 我们设$f[j]$为第$j$天时用户手上最多有多少钱 设$w$为花完钱买到的$B$券数 $ ...

  6. Python GIL锁

    GIL全局解释器锁:为了解决多线程修改同一块数据. python的线程是调用操作系统的源生线程,启动时就是调用C语言的C源生接口,python调用C语言接口的线程去执行任务时,必须上下文对应关系传给C ...

  7. WebBench 安装使用

    介绍 WebBench是有名的网站压力测试工具,由Lionbridge公司开发,最多可以模拟3万个并发连接去测试网站的负载能力.. 安装 系统:Linux Centos 7.4 x64 版本:webb ...

  8. 采用xtrabackup部署主从同步

    1.停掉从库192.168.1.23[root@dev-env23 tmp]# service mysqld stopStopping mysqld: [ OK ] 2.主库全备份cd /opt/xt ...

  9. UVA11992 Fast Matrix Operations

    思路 注意到最多20行,拆成20颗线段树即可 注意set标记清空左右儿子的add,不要清空自己的add,因为这个set操作之后可能还有add存在这个节点上 代码 #include <cstdio ...

  10. (转载)Unity UGUI点击不同Button执行不同的方法(无参方法)

      将脚本随意挂在任何位置 但是这个btnParent一定是 按钮的父节点   脚本很简单自己敲一遍就全都明白了 上脚本 OnClickTest using UnityEngine; using Un ...