1.将conda中的python版本降低到python3.7
conda install python==3.7
此时查看pyhton的版本和pip的版本均为3.7(conda真方便)
conda支持的包远没有pip多,因此很多时候还是需要使用pip命令安装包。使用pip命令时,要先检查pip的来源,确保是来自当前conda环境,只有这样包才会被安装到当前conda环境中(anaconda3/envs/rtamtEnv/lib/python3.7/site-packages)。环境外的pip是不认识conda环境的。
查看pip的来源
which a pip
或者
pip -V
切换pip来源
alias pip=~/anaconda3/envs/AntlrTest/bin/pip
来自当前conda
2.安装antlr
sudo apt install antlr4
安装对应版本的antlr4运行时
sudo pip install antlr4-python3-runtime==4.7
pip默认将包安装在
anaconda3/envs/rtamtEnv/lib/python3.7/site-packages
3.安装rtamt
pip install rtamt
至此rtamt环境搭建完成
测试:
cd rtamt
python -m unittest discover tests/
报错,antlr4运行时和生成的代码版本不匹配
将运行时改为和生成的代码一致的版本
pip install antlr4-python3-runtime==4.5
rtamt未解决的问题
只能处理DiscreteTime,对于DenseTime,找不到StlDensrTimeSpacifucation
原因:
rtamt下的__init__文件中将STLDiscreteTimeSpecification导入为别名STLSpecification。其他它类似,也是别名导致的
from rtamt.spec.stl.discrete_time.specification import STLDiscreteTimeSpecification as STLSpecification
处理:注释掉别名,用原名,问题解决(注意,此时官网上的例子还是运行不出来,因为官网的例子中使用的方法名有误,将例子中的StlDiscreteTimeSpecification改为STLDiscreteTimeSpecification即可)
官网例子运行结果:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。