由于毕设方向需要安装Hypatia:一个LEO网络仿真框架,可能因为太过小众了,全网没找到几个安装配置教程,断断续续花了好几个星期才整得差不多(或许还有别的漏洞没发现),其间踩了无数的坑,重来了好几次,特此记录一下。
有几次安装成功了却无法正常使用cartopy
,试遍了cartopy
的安装方案,即使成功安装了也无法正常import
。
最后在cartopy
项目里看到作者说最好别用pip
安装,推荐使用conda
,所以安装之前先在虚拟机上构建conda
环境。
#下载anaconda,直接从清华镜像源下载即可
wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
#安装anaconda
bash Anaconda3-5.3.1-Linux-x86_64.sh
一路Enter和yes即可,如果不想安装vscode的话记得最后一次选择no。
接下来将conda加入环境变量:
#打开配置文件
sudo /etc/profile
按i
进入输入模式,在文件最后一行添加:
export PATH=~/anaconda3/bin:$PATH
其中~/anaconda3/bin
根据自己的安装路径修改。
然后重启一下虚拟机,用conda -V
试试,如果正常输出版本就成功啦。
然后试图用anaconda安装cartopy的时候,发现有个错误:HTTP 000 CONNNECTION FAILED,照着网上说给conda添加源、删除default都没有用,最后发现清华镜像源的首页就写好了解决方案
#打开conda配置文件
sudo vim ~/.condarc
按i切入输入模式,覆盖文件内容为:
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
如果持续出现HTTP000可将所有的https改为http并执行conda clean -i
这个问题很玄学感觉可能要尝试很多种方式。
保存退出即可。
然后安装cartopy
:
conda install cartopy
将项目克隆到本地:
git clone https://github.com/snkas/hypatia
由于我统一执行依赖项安装命令bash hypatia_install_dependencies.sh
总是会出现各种各样的错误,干脆拆开来一步步执行(
进入hypatia目录,执行:
sudo apt-get install update
pip install numpy astropy ephem networkx sgp4 geopy matplotlib statsmodels
sudo apt-get install libproj-dev proj-data proj-bin libgeos-dev
sudo apt-get -y install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev lcov gnuplot
然后是安装同作者的exputil
和networkload
库:
#从GitHub上clone下来
git clone https://github.com/snkas/exputilpy
git clone https://github.com/snkas/networkload
#安装exputil
cd exputilpy
python -m pip install .
cd ..
#安装networkload
cd networkload
bash install_local.sh
bash hypatia_build.sh
可能出现的错误及解决方案有:
hypatia/ns3-sat-sim/simulator/contrib/basic-sim
目录下,ls一下看看是不是空的,如果是,那么:#回到contrib目录
cd ..
#删除空目录basic-sim
rmdir basic-sim
#从作者的GitHub重新clone一下basic-sim
git clone https://github.com/snkas/basic-sim
#不知道是什么命令,但是要执行 不然编译阶段会报错
git submodule update --init --recursive
#在hypatia/ns3-sat-sim/simulator/contrib/basic-sim执行以下语句
git submodule update --init --recursive
回到hypatia目录,执行:
bash hypatia_run_tests.sh
如果跑的差不多(指错误不那么多)大概就是装好了,其他的留着慢慢解决吧(