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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM