• python项目运行环境安装小结


    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
    
  • 相关阅读:
    vim配置
    git rebase
    mongodb的docker-compose.yml
    Nginx配置BrowserRouter跟随react-router
    Flux Architecture & Redux Data Flow & redux & react-redux PPT
    from acwing 从算法数量推算算法复杂度
    evalRPN 逆波兰算术
    二分区间
    Flex布局
    Treap 模板
  • 原文地址:https://www.cnblogs.com/AlexanderYao/p/6409477.html
Copyright © 2020-2023  润新知