Meep基于windows系统安装
Meep是一个基于时域有限差分(finite-difference time-domain, FDTD)方法进行电磁仿真的免费开源软件包,应用范围广泛。安装环境准备Windows下安装meep,还是需要安装类lunix系统。我(win10系统)采用的是:安装Ubuntu app;win8及以前的系统可以安装Cygwin。1.在安装ubuntu app之前需要在控制面板中,找到程序与功能,然后启用“
Meep是一个基于时域有限差分(finite-difference time-domain, FDTD)方法进行电磁仿真的免费开源软件包,应用范围广泛。
安装环境准备
Windows下安装meep,还是需要安装类Linux系统。我(win10系统)采用的是:安装Ubuntu app;win8及以前的系统可以安装Cygwin。
1.在安装ubuntu app之前需要在控制面板中,找到程序与功能,然后启用“启用或关闭windows功能选项卡”中的适用于linux的windows子系统,如下图:
2.打开Microsoft Store,搜索 Ubuntu,安装
安装好之后如下图所示:
双击打开,等待Linux系统安装完成,会要求输入username,注意一定以小写字母开头,然后是密码。
安装miniconda
打开刚才安装好的ubuntu ,输入下面的命令,该命令是将miniconda下载到本地的当前目录,然后需要安装它。
wget https://repo.continuum.io/miniconda/Miniconda3-latest_Linux-x86_64.sh -o miniconda.sh
接着输入如下命令,安装miniconda
bash Miniconda3-latest-Linux-x86_64.sh
运行结果如下图所示:
接下来一直enter,直到询问接收license terms时,输入yes,如下图所示:
询问安装位置,一般来说,按enter选择默认位置即可。(我安装的时候好像不小心点到哪里了,就换了一个安装位置)
询问是否对刚才的安装文件夹初始化(我这个描述可能不太准确),yes即可
此时应该默认加入了环境变量,可以尝试
which python
我的没有反应
上网查了以后,解决方法如下,输入如下命令:
export PATH=/home/ubuntu系统的用户名/miniconda(前面询问安装位置的时候如果没有修改的话就是这个)/bin/:$PATH
在使用which python命令就可以看到Python的路径了
安装meep
为了不影响其他的功能,我们安装在虚拟环境”mp”中,输入如下命令:
conda create -n mp -c conda-forge pymeep
我又又又报错了(鲨了我吧)
上网查了一下,默认镜像源访问速度过慢,会导致超时从而导致更新和下载失败。解决方案:更换镜像源为清华镜像源,并且删除默认镜像源。
在**用户根目录(C:\Users\用户名)**下找到.condarc文件,打开将原有内容替换成如下代码:
channels:
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.aliyun.com/anaconda/pkgs/main
- http://mirrors.aliyun.com/anaconda/pkgs/r
- http://mirrors.aliyun.com/anaconda/pkgs/msys2
custom_channels:
conda-forge: http://mirrors.aliyun.com/anaconda/cloud
msys2: http://mirrors.aliyun.com/anaconda/cloud
bioconda: http://mirrors.aliyun.com/anaconda/cloud
menpo: http://mirrors.aliyun.com/anaconda/cloud
pytorch: http://mirrors.aliyun.com/anaconda/cloud
simpleitk: http://mirrors.aliyun.com/anaconda/cloud
如果找不到.condarc的可以自己创建一个,但是千万不要动安装路径下(如下)的condarc(不要问我为什么知道,都是血的教训!)
C:\Users\电脑用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\ubuntu系统用户名
如果有出现这种情况(就不管输入什么命令都只出现[y/N],再输入y也没用。)可能就是和我一样动了安装路径下的condarc文件,赶紧改回来。
言归正传:保存好之后重新在ubuntu中输入安装在虚拟环境中的那条指令,成功啦!
接下来激活虚拟环境
conda activate mp
可以看到,命令前面出现了(mp)
测试是否成功
打开python,加载meep库
它又报错了!
查了一下,问题可能在:
检索so.6,但是安装路径下只有so.7
试图强行安装
conda install libctlgeom.so.6
失败了,大概意思应该是清华的镜像源找不到这个文件。特意查了一下:
4 个 Anaconda 国内开源镜像站
通过如下代码添加镜像源:(前面默认镜像源访问速度过慢导致下载失败的错误也可以用下面这种方法更换镜像源)
# 添加
conda config --add channels https://xxxxxxxxxxxx
conda config --set show_channel_urls yes
# 查看效果
cat ~/.condarc
添加好之后再一次尝试conda install libctlgeom.so.6,以失败告终
我没辙了。。。。。。。(写于2021.12.4)
2021.12.5更新
睡了一觉起来打开电脑,继续尝试import,它居然换了个错误
上网查了一下产生报错的原因可能有:当前文件被占用了、用户没有访问权限、打开目标不是文件
解决方案:检查打开的是否位文件,Linux中用“/”表示路径,Windows中用“\”表示路径,即是否多加了斜杠;文件是否被占用,如打开文件后没有关闭,即 变量.close();亦或者检查文件是否存在,及用chmod命令修改用户权限。
我最后采用的方法是找到该文件所在的文件夹,右键属性查看属性状态,不要选择只读
重新import,无效。
又询问一些热心网友,可能是python版本不对,我看了一下:
meep环境中(3.6.15),miniconda环境下(3.9.5),windows系统下(3.6.8)的python版本都不同
于是试图通过如下指令在miniconda环境下安装3.6版本的python
conda create -n py36(这个名字可以自己取) python=3.6
然后在
C:\Users\电脑用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\Ubuntu系统用户名\Miniconda3\envs
这个路径下出现了py36的文件夹。使用conda info命令却发现python的版本仍然是3.9(鲨了我吧)
最后!
有人建议我重装meep,那行吧
先关闭conda环境
conda deactivate
再卸载mp
conda remove --name mp --all
重新安装meep,激活mp环境,打开python,import,没有报错了!
可以看到重装以后的python是3.9版本的。前面出问题应该就是这个原因。
ps:如果不重装meep,而是在激活mp环境没问题以后,输入python3.9,然后import,会不会实现重装同样的效果呢?有兴趣的小伙伴可以尝试一下
一点感慨
装这个装了五天,虽然不是完完整整的五天,但是中间真的很崩溃,怀疑人生的那种。所以我就想着一定要把我踩过的坑记下来,尽可能多帮到一些小伙伴。文中如果表述不正确的地方欢迎大家指出。
更多推荐
所有评论(0)