1. 环境
ubuntu 20.04
2. 安装 python2.7.17
下载Python2.7.17
参考链接(28条消息) Python2.7.16安装(Ubuntu16.04)_python2.7.16编译安装_小斌哥ge的博客-CSDN博客
(28条消息) Ubuntu16.04安装python2.7_小数苗小数苗的博客-CSDN博客
wget https://www.python.org/ftp/python/2.7.17/Python-2.7.17.tgz
执行 ./configure --prefix=/usr/local/python2.7.17
报错:
configure: error: in `/usr/Python-2.7.17': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details
解决办法:
sudo apt-get install gcc
sudo apt-get install g++
3. python2.7.17 设为默认 python
检查系统上可用的 python 版本
ls /usr/bin/python*
查看是否配置了Python替代方案
sudo update-alternatives --list python
设置替代版本
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
确认两个备选方案都可以使用:
sudo update-alternatives --list python
sudo update-alternatives --config python
4. 安装 pip2
sudo apt-get install curl # 需要安装curl
sudo add-apt-repository universe
sudo apt update
# Python 2的 pip 没有被包含在 Ubuntu 20.04源仓库中。使用get-pip.py脚本来为 Python 2 安装 pip。
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py
pip --version
安装了zlib依旧报错
执行:
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
5. 安装 ipython3.2.0
pip install ipython==3.2.0
6. 安装 z3-solver 4.5.1
pip install z3-solver==4.5.1.0
sudo pip install z3==0.2.0
7. 安装 ply3.4
pip install ply==3.4
8. 安装 pygraphviz1.3
# 我能安装上的方法
sudo apt-get install libgraphviz-dev pkg-config
sudo apt-get install g++ cmake git pkg-config libssl-dev
sudo pip install graphviz==0.16
wget https://files.pythonhosted.org/packages/98/bb/a32e33f7665b921c926209305dde66fe41003a4ad934b10efb7c1211a419/pygraphviz-1.3.1.tar.gz
tar -zxf pygraphviz-1.3.1.tar.gz
cd pygraphviz-1.3.1
sudo python setup.py install
# pygraphviz-1.3.1.tar.gz的安装包在这里https://pypi.org/project/pygraphviz/1.3.1/#modal-close
下述情况试过了都不行。。。。
先安装依赖 sudo apt-get install libgraphviz-dev pkg-config
安装1.5版本:pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/”
pip install pygraphviz==1.3.1 --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/local/lib/python2.7/dist-packages/graphviz/”
/usr/local/lib/python2.7/dist-packages
安装 pygraphviz1.3 之前需要安装 graphviz0.16
sudo pip install graphviz==0.16
# 其他相关依赖包
sudo pip install setuptools==44.1.1
sudo pip install tarjan==0.2.3.2
sudo pip install pygraphviz==1.3.1
# 确保 pydot 安装好,版本为1.4.2
sudo apt-get update
sudo apt-get install graphviz
pip install pydot==1.4.2
sudo apt-get install g++ cmake git pkg-config libssl-dev
9. 安装 tcl tk tix
# 下载安装tcl
wget https://sourceforge.net/projects/tcl/files/Tcl/8.5.0/tcl8.5.0-src.tar.gz/download
tar -zxf download
cd tcl8.5.0
cd unix
./configure --enable-shared # enable-shared让后面的tk可以使用
sudo make
sudo make install
# 查看tcl是否安装成功
info tcl
# 下载安装tk
wget https://sourceforge.net/projects/tcl/files/Tcl/8.5.0/tk8.5.0-src.tar.gz/download
tar -zxf download
cd tk8.5.0/unix
./configure --enable-shared
sudo make # 这一步会报错,错误和解决办法如下
sudo make install
# 最后配置环境变量
nano ~/.bashrc
# 在文件末尾添加以下两行告诉系统Tcl和Tk的位置
export TCL_LIBRARY=/usr/local/lib/tcl8.5
export TK_LIBRARY=/usr/local/lib/tk8.5
# 按下 Ctrl + X,输入 y 保存文件并退出
# 输入以下命令使修改的 .bashrc 文件生效
source ~/.bashrc
# 下载tix8.4.3,重新编译和安装 Tix
wget https://sourceforge.net/projects/tix/files/tix/8.4.3/Tix8.4.3-src.tar.gz/download
tar -zxf download
cd Tix8.4.3
./configure --with-tcl=/usr/local/lib --with-tk=/usr/local/lib
sudo make
sudo make install
# 最后记得配置 tix 的环境变量,和上述方法一样,这里就不再赘述
这是最终 pip list 的所有包
装 tk 的过程中,make 报错
是因为 x11 没有安装完整,于是先输入:sudo apt-cache search x11-dev
再输入:sudo apt-get install libghc-x11-dev
即可
10. 下载安装 Ivy
git clone --recurse-submodules https://github.com/kenmcmil/ivy.git
子模块报错:
破案了 git clone 中的 check out 根本不是报错
查看官方文档:Git - Submodules
官方文档中的 git clone 时也会输出 check out,所以 check out 并不是报错信息,也没有飘红。
根据 ivy 官方给的教程:Installing IVy (microsoft.github.io)
一共有两种安装方法:
10.1 第一种:在 ivy 包中编译(这种方法要很久,不推荐)
cd ivy
sudo python build_submodules.py # 可能会报错
sudo apt-get install libreadline-dev # 报错解决方法
sudo python setup.py install
10.2 第二种:直接 pip
sudo pip uninstall ms-ivy
# 这里卸载是因为之前装过了
sudo pip install ivy
11. 运行示例
cd doc/examples
ivy client_server_example.ivy
执行 ivy client_server_example.ivy 报错,原因:要进入 root 模式执行:
sudo passwd root
# 输入一个新的密码: root
# 请在确认一遍密码: root
su root
sudo ivy_check diagnose=true client_server_example.ivy
client_server_example.ivy 是官方文档中的示例,运行不会弹出图形界面,因为不变式已经全部check,且找不出反例,下面是我新加入的mutual例子,该例子是我同门编写的,不变式没有找全的版本,故能够找到反例,并弹出图形化界面。
运行 ivy_check diagnose=true mutual.ivy,发生如下报错:
解决办法:参考(28条消息) 使用Popen时报错:OSError: [Errno 2] No such file or directory_chansonzhang的博客-CSDN博客
cd /usr/local/lib/python2.7/dist-packages/ivy
sudo vim ivy_graphviz.py
# 按 i 键进行 insert
# 将132行中 process = Popen(['dot','-Tdot',tmp_name], stdout=PIPE)
# 改为 process = Popen(['dot','-Tdot',tmp_name], shell=True, stdout=PIPE)
# 之后按Esc,输入 :wq!
emmm,还是有其他的一些报错,最终又是卸了 ivy,再重装,发现需要 sudo apt-get install graphviz,栓q,终于不报错了,但卡在如下不动了:
(diagnose=true是用来显示图形界面的,也就是图形界面无法弹出。。。)
amazing,最终跑不出来的原因找到了,要装 pydot,然后卸载 ivy,再重装 ivy
sudo pip uninstall ms-ivy
sudo pip install ivy
然后就装好了!!!图形界面弹出来了,鬼知道我装这个装了多久,呜呜呜,万分感谢我同门之前替我踩过的一些版本的坑。