想要做一个anomaly detection的项目,查看资料看到一个关于python的开源架构叫做datastream.io。
按照https://github.com/MentatInnovations/datastream.io/blob/master/README.md 中的指导进行学习测试,在过程中遇到了一些问题,在此总结一下解决办法。先说一下关于这篇文章中遇到的问题的解决办法,之后再扩展到一般情况。
问题1. 按照文章步骤在terminal输入 virtualenv --python=python3 dsio-env。会显示 Error "virtualenv : command not found".
这时需要安装virtualenv,terminal输入pip3 install virtualenv。之后再次运行virtualenv --python=python3 dsio-env即可。该句话的意思是将虚拟环境命名为dsio-env. 之后继续按照文章中的command line执行
source dsio-env/bin/activate
pip install -e git+https://github.com/MentatInnovations/datastream.io#egg=dsio
cd dsio-env/src/dsio/examples
dsio data/cardata_sample.csv (注意要在dsio-env 环境激活的状态下运行)
这里也可能会出现一个问题
问题2:
Traceback (most recent call last):
File "C:\Program Files\Python36\Scripts\dsio-script.py", line 11, in
load_entry_point('dsio', 'console_scripts', 'dsio')()
File "c:\windows\system32\src\dsio\dsio\main.py", line 155, in main
cols=int(args.cols)
File "c:\windows\system32\src\dsio\dsio\main.py", line 70, in restream_dataframe
port=bokeh_port, update_queue=update_queue
File "c:\windows\system32\src\dsio\dsio\dashboard\bokeh.py", line 74, in generate_dashboard
if io_loop._running: # Assume we're in a Jupyter notebook
AttributeError: 'AsyncIOMainLoop' object has no attribute '_running'
解决这个问题的方法是将tornado的版本改成4.5.3。如何查看python中安装模块的版本,可以在terminal中输入pip freeze进行查看。安装tornado 4.5.3 版本指令:
pip3 install tornado==4.5.3
问题3: 想要在jupyter notebook中进行测试链接文章中的jupyter notebook的例子,但是总是出现错误如下
ModuleNotFoundError: No module named 'dsio'。
这是因为jupyter notebook并没有在dsio-env环境下运行,下面设置jupyter notebook在dsio-env环境下运行。
首先在terminal下激活虚拟环境source dsio-env/bin/activate
执行: pip install ipykernel
ipython kernel install --user --name=dsio-env
之后在terminal中输入jupyter notebook,在想要创建notebook路径下的右上角可以看到下图:
选择dsio-env,之后就是在dsio-env的环境下运行jupyter notebook了。
问题4 : 运行链接文章中的restream_dataframe(df, detector, sensors=['engine_speed','vehicle_speed',
'accelerator_pedal_position','torque_at_transmission'], cols=2, speed=50)
会出现如下的error,并且没有图片显示,但是我目前还没有找到解决办法,希望知道如何解决如下问题的小伙伴进行留言指导,谢谢你们的帮助和支持!!!
ERROR:bokeh.server.views.ws:Refusing websocket connection from Origin 'http://localhost:8890'; use --allow-websocket-origin=localhost:8890 or set BOKEH_ALLOW_WS_ORIGIN=localhost:8890 to permit this; currently we allow origins {'localhost:8888'}
WARNING:tornado.access:403 GET /ws?bokeh-protocol-version=1.0&bokeh-session-id=FYsSw2Pqi0t3HxRM7oQ1QbyHFqnsQgk2FaYibcmdNyuX (::1) 1.28ms
下面将如何安装python 虚拟环境&设置jupyter notebook运行在特定的虚拟环境下的问题一般化
1. 安装python 虚拟环境
pip3 install virtualenv
virtualenv --python=python3 虚拟环境名字
2. 设置jupyter notebook运行在特定的虚拟环境下
source 虚拟环境名字/bin/activate
pip install ipykernel
ipython kernel install --user --name=虚拟环境名字
这里说一下如何在执行了
source 虚拟环境名字/bin/activate
激活虚拟环境之后,停止激活状态:terminal中输入deactive即可。