使用Python开发一个web股票项目。
【github项目地址】:
https://github.com/pythonstock/stock
【知乎专栏地址】:
https://zhuanlan.zhihu.com/pythonstock
【docker hub地址下载】:
https://hub.docker.com/r/pythonstock/pythonstock
【相关stock资料分类】:
http://blog.csdn.net/freewebsys/article/category/7076584
主要使用开发语言是python。
使用的lib库是pandas,tushare,TensorFlow,tornado等。
本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/85104818
未经博主允许不得转载。
维护一个系统就是比较麻烦。
最近想重新升级下股票系统的docker 镜像。发现几个问题。
1,基础镜像升级了,直接从debian 9 升级到 10,造成安装不上软件。
限制使用 镜像 : docker.io/python:3.6-slim-stretch
这样就可以锁死 3.6 stretch 版本了。保证安装脚本没有问题。同时发现python 也有3.7 3.8 的版本升级了。
这边还使用 3.6 吧。
然后是增加了 jupyter ,在supervisor 里面增加了 启动命令。
为了安全点那个 token 不写死,但是咋找呢。
docker exec -it stock bash
cat /tmp/jupyter-stderr*.log
# 就可以看到 token 了,然后可以登录了。
默认supervisor的日志 都放 tmp 目录里面了。
然后就是开启 8888 端口,作为jupyter 的端口。可以进行演算了。
TensorFlow 2.0.0-rc1 都出来了。
https://github.com/tensorflow/tensorflow/releases/tag/v2.0.0-rc1
知乎上都开始出教程了:
https://zhuanlan.zhihu.com/p/59507137
但是,但是现在手上的教程和学习资料 1.0 的还没有整明白,而且也不想去踩那些bug。
毕竟这边主要是用来学习的,做分析的,能用就行。估计出了得一阵子才稳定呢。
pip3 install tensorflow keras sklearn
不加版本安装的是最新的 tensorflow-1.14.0 稳定的版本,可以了。
但是文件也增加一倍多。达到了 1.2 G。
但是升级方便点。
hub 地址:
https://hub.docker.com/r/pythonstock/pythonstock
启动方式么有变:
mkdir -p /data/mariadb/data
docker run --name mariadb -v /data/mariadb/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mariadb -p 3306:3306 -d mariadb:latest
docker run -itd --link=mariadb --name stock \
-v /data/notebooks:/data/notebooks \
-p 8888:8888 \
-p 9999:9999 \
pythonstock/pythonstock:latest
发现一个奇葩的问题 ,之前是可以的唯一的解释是python小版本升级了。torndb支持不够了。
发现 python 从 3.6.6 升级到了 3.6.9 这么小的升级造成 torndb 跑步起来了。
Traceback (most recent call last):
File "/data/stock/web/main.py", line 5, in
import torndb
File "/usr/local/lib/python3.6/site-packages/torndb.py", line 260, in
CONVERSIONS[field_type] = [(FLAG.BINARY, str)] + CONVERSIONS[field_type]
TypeError: can only concatenate list (not "type") to list
木有办法,是 /usr/local/lib/python3.6/site-packages/torndb.py 这个代码有问题。
使用 sed 进行代码修改:
sed -i -e 's/\+ CONVERSIONS\[field_type\]/\+ \[CONVERSIONS\[field_type\],bytes\]/g' \
/usr/local/lib/python3.6/site-packages/torndb.py
修改结果为 260 行:
CONVERSIONS[field_type] = [(FLAG.BINARY, str)] + CONVERSIONS[field_type]
修改成:
CONVERSIONS[field_type] = [(FLAG.BINARY, str)] + [CONVERSIONS[field_type],bytes]
看启动日志:都成功了。
2019-09-17 01:25:52,645 INFO success: jupyter entered RUNNING state, process has stayed up for > than 20 seconds (startsecs)
2019-09-17 01:25:52,645 INFO success: init_and_cron entered RUNNING state, process has stayed up for > than 20 seconds (startsecs)
2019-09-17 01:25:54,652 INFO success: stock-web entered RUNNING state, process has stayed up for > than 20 seconds (startsecs)
环境的问题,其实是一种困扰开发的,比如这个升级的问题,安装的问题。
也是折腾半天,做了一次小的升级,发现了还是 torndb 问题,使用sed 修改代码。都没有人维护了。
而且dockerfile 作为一个标准的安装流程,只要是本地没有问题,其他人那里就没有问题。
并且上传到 hub 上面的镜像也是没有问题的,这样就保证了版本和环境的一致,减少弯路了。
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/100905003
博主地址是:http://blog.csdn.net/freewebsys