centos系統安裝vnpy

2021-09-02 01:20:37 字數 4270 閱讀 6790

在 centos7 中 vnpy1.9的安裝

# 軟體版本

vnpy-1.9

centos release 7 (final)

gcc (gcc) 4.7.2 20121015 (red hat 4.7.2-5)

python 2.7.13 :: anaconda 4.0.0 (64-bit)

anaconda2-4.0.0

conda 4.3.30

mongodb: v2.7.0

boost_1_68_0

---------------------------

# 安裝python

``` bash

/cd to/codes/anaconda/

wget 

chmod +x anaconda2-4.0.0-linux-x86_64.sh

./anaconda2-4.0.0-linux-x86_64.sh

```2.anaconda2 所安裝 的 python 路徑

``` bash

bin:        /usr/bin/anaconda2/bin/python

include:     /usr/bin/anaconda2/include/python2.7

lib:         /usr/bin/anaconda2/lib/python2.7

```若centos之前已經安裝python,則刪除/usr/bin/python的軟連線,重新建立/usr/bin/anaconda2/bin/python的軟連線

3.檢視 python 的路徑

建立資料庫的資料路徑

``` bash

mkdir -p /data/db

```8.mongodb 的安裝路徑

mongodb 的安裝路徑該路徑需要新增進去環境變數path,可以寫入到 /ete/profile 或者 ~/.bashrc

export path=$path:/usr/bin/mongo/bin

## mongod 的 啟動

執行 vnpy 前,執行 mongod 服務。

```mongod &

```------------------------------

9.boost_1_68_0 安裝 (vnpy needs boost >= 1.55)

## 修改vnpy-1.9的cmakelists.txt

修改 vnpy-1.9的 所有的 cmakelists.txt

不然 會出現 找不到 boost 和 python 庫的問題。

修改所有 cmakelists.txt 檔案:

1 修改 python_include_path 

* 修改前: python_include_path /usr/include/python2.7

* 修改後: python_include_path /usr/bin/anaconda2/include/python2.7

2 修改 paths

* 修改前: paths /usr/lib/x86_64-linux-gnu

* 修改後: paths /usr/bin/anaconda2/lib

也可以用以下指令碼修改,專案中 所有的 cmakelists.txt。

將指令碼 放置到 vnpy-1.9 的目錄下面。然後執行。

``` bash

#!/bin/bash

function main()

"string_replace "python_include_path \/usr\/include\/python2.7" "python_include_path \/usr\/bin\/\/anaconda2\/include\/python2.7" "$"

string_replace "paths \/usr\/lib\/x86_64-linux-gnu" "paths \/usr\/bin\/anaconda2\/lib" "$"

return 0

}function target_file_search()

`if [ $? -ne 0 ]; then

return 1

fiecho $

return 0

}function string_replace

/$/g" $

return 0

}main $*

```後面按照 網上的指引安裝 便可。

``` bash

# cd 到 vnpy-1.9 的目錄

install.sh

```-----------------------------------------

11.numpy可能出現so庫不相容的問題:

python -m pip uninstall numpy

python -m pip install numpy

12. 解決 libta_lib.so 需要 glibc2.14 的問題:

當啟動 vnpy 的 程式出現以下問題時。

importerror: /lib64/libc.so.6: version `glibc_2.14' not found (required by /root/anaconda2/lib/python2.7/site-packages/talib/../../../libta_lib.so.0)

表示 libta_lib.so 需要 glibc 2.14。

但是 glibc 只有 2.12。

``` bash 

# strings /lib64/libc.so.6 | grep glibc

...glibc_2.12

```注意: 千萬不要公升級 glibc。否則 會影響到整個系統,可能開不了機。

---------------------------

13.重新 安裝 ta-lib 替換原來的

檢視 anaconda2 中 原來的 ta_lib 安裝路徑:

``` bash    

a:            /root/anaconda2/lib/libta_lib.a

so:            /root/anaconda2/lib/libta_lib.so.0.0.0

include:     /root/anaconda2/include/ta-lib

bin:        /root/anaconda2/bin/ta-lib-config

``` 

由於需要 覆蓋原來的 設定。所以最好 備份以上的路徑和檔案。

14 檢視 libta_lib.so 的 glibc 版本

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

chown root:root ta-lib -r

cd ta-lib

# 安裝 到 /root/anaconda2

./configure --prefix='/root/anaconda2'

make -j 8 && make install

```-----------------------------

16xtpgateway 問題:

nameerror: global name 'xtpgateway' is not defined

## 修改 vntrader/run.py

遮蔽 run.py 的 xtpgateway 功能。

``` python 

#    if system == 'linux': 

#        me.addgateway(xtpgateway)

```****************************************=

17 解決unicodeencodeerror問題

unicodeencodeerror: 'ascii' codec can't encode characters in position 27-32: ordinal not in range(128)

修改locale環境設定的編碼,export lang=zh_cn.utf-8

**及參考:

vnpy安裝的坑記錄

雖然vnpy出了2,但是不知道為什麼多多少少都會出問題,而且,2之後的vnpy更加傻瓜化了,不太那麼程式設計師,總覺得 怪怪的。所以在新的電腦上重新配了一些vnpy1.x的版本,結果發現了以前的坑。雖然之前都解決了,但是重新解決起來居然有點遺忘,所以寫一下吧。mongodb什麼的就不說,因為我的自己...

安裝vnpy2 x x版本

在pycharm中指定python編譯器為vnstudio中的python 建立自己的虛擬環境,其中python為anaconda3中的python建立自己的虛擬環境 python m venv virtual name 啟用虛擬環境 source vir name bin activate 進入v...

安裝Centos系統

一 安裝centos 7系統 介紹 vmware workstation是乙個虛擬pc的軟體,利用vmware工作站,可以在現有的作業系統上虛擬出乙個或多個環境。相當於模擬出多台新的pc,可以讓你同時執行多個windows系統,linux系統,dos系統。點選右上角的新建虛擬機器 選擇自定義 下一步...