导言
- 硬件:个人电脑(i5-8300H,32G,1050TI),学校的超级计算机,研究室的工作站。
- 资料来源:哔哩哔哩/YouTube,SegmentFault
应用方向偏物理学背景的数据分析,但是一切都是0基础开始的。Python基础入门我是通过在线学习进行的:https://vitu.ai/
在超级计算机上配置meep
设备:JAIST 超级计算机
因为要做一些FDTD/电磁学仿真,但是用个人PC又很蛋疼,所以就选择在超算上搭一个meep的仿真环境,这样会非常省时间。我所参考的是MEEP官方文档https://meep.readthedocs.io/en/latest/Installation/
miniconda 的安装
在自己的目录下建立一个python文件夹,学校超算已经预装了python3的环境,所以只要照着官方文档来安装就好了。
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
下载miniconda的包,是python3版本的。然后
bash miniconda.sh -b -p <desired_prefix>
注意这里的
之后
export PATH=<desired_prefix>/bin:$PATH
会报错
export: command not found
难道我的SHELL有问题??所以先查看SHELL信息
echo $SHELL
返回
/bin/tcsh
原来是tcsh不是bash!!怪不得报错。在这种情况下,直接回到本人账户目录下,手动添加path信息到.cshrc文件里就行了
vim ~/.cshrc
但是我多次测试之后还是无法执行,可能是因为账户权限限制导致(另外学校超算的SHELL为什么是tcsh而不是bash啊orz),就只能手动用setenv命令执行了
setenv PATH "<desired_prefix>/bin"
setenv PATH <desired_prefix>/bin:$PATH
之后就成功了,缺点是估计下次使用conda命令时要重新手动执行一下这个命令。然后创建一个名字为mp的环境,在里面安装meep。这里的mp可以是任意名字的
conda create -n mp -c chogan -c conda-forge pymeep
然后就是漫长的安装过程了。安装好之后突然跳出这么一个错误:
Exception('No compatible shell found!')
没有管,继续
conda activate mp
结果报错了!提示用conda init来指定shell。
看来是SHELL的选择问题,只能手动来了,为了方便,我选择tcsh,所以输入
conda init tcsh
exec /bin/tcsh -l
然后激活mp这个环境
conda activate mp
没有报错,并且目录前显示(mp),说明激活成功!!之后就应该可以使用了,但是为了方便使用,直接装一个Jupyter比较好,这里我也是参考官方的文档https://jupyter.org/install
在这个miniconda的目录下执行:
conda install -c conda-forge jupyterlab
之后就是漫长的安装与等待,有时会提示让升级conda的版本,这个是可以忽略的jupyterlab是jupyter notebook的下一代产品(替代品),因此我也就不安装jupyter notebook了。虽然也可以用pip命令来安装,但是要配置PATH太过复杂了所以就用conda命令了。在安装完之后,执行:
jupyter lab
就会跳出一个浏览器窗口,在里面可以使用jupyter lab了。
但是,在使用时发现找不到包!!可是conda list是有包的!
于是
conda search pymeep
返回
Loading channels: done
No match found for: pymeep. Search: *pymeep*
PackagesNotFoundError: The following packages are not available from current cha nnels:
- pymeep
Current channels:
- https://repo.anaconda.com/pkgs/main/linux-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/linux-64
- https://repo.anaconda.com/pkgs/r/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
解决方法是配置一下conda,输入
conda config --append channels conda-forge
这个时候
python -c 'import meep'
就不会报错了,说明总体上是安装成功了,且能运行。但是可能会有其他问题,如
AttributeError: module 'meep' has no attribute 'Vector3'
但是我用同样的方法在虚拟机上安装,跑同样的代码就没有出现这个问题。很可能是超算上python版本的问题。不过总体上这个安装方法是正确的,跑一些简单代码还是可以的。至于一些错误的解决方法之后会更新。
不过终究还是要用的,所以我尝试在工作站(DELL PowerEdge T620)上通过安装Linux for Windows 然后用上述方法进行安装,毕竟这个工作站的配置也不算低了,勉强能用。虽然因为不知名原因IEER1的问题一直解决不了(即使毫无大碍)。
关于WSL的安装与设置方法我是参考这里来弄的:https://zhuanlan.zhihu.com/p/61542198
开启Ubuntu之后先对vim进行美化,毕竟是要给老板展示装逼用的….具体的就不说了,代码如下:
mkdir .vim
cd .vim
git clone https://github.com/tomasr/molokai.git
cp -rf molokai/colors/ ./colors
vim vimrc
打开vim之后添加如下代码,然后:wq退出
colorscheme molokai
之后创建一个meep文件夹,然后安装miniconda,由于这里的shell是默认bash的,因此直接copy很酸爽。命令依次如下:
mkdir meep
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p miniconda //这里我解压到miniconda文件夹里
export PATH=/root/meep/miniconda/bin:$PATH //设置PATH变量
之后就是安装meep的步骤了,和上述方法也是完全一样的。命令依次如下:
conda create -n mp -c chogan -c conda-forge pymeep //创建名为mp的虚拟环境以安装pymeep包
conda init bash //配置shell
exec /bin/bash //配置shell
conda activate mp //激活环境
之后我在该环境下安装jupyterlab
conda install -c conda-forge jupyterlab
但是在打开jupyterlab的时候出现报错
Running as root is not recommended. Use --allow-root to bypass.
解决方法是:
jupyter notebook --generate-config --allow-root
然后vim生成的配置文件,之后
#c.NotebookApp.allow_root = False //去掉#,并修改成True即可解决root权限运行的问题
为了啊wsl当中合理使用不报错,最好是使用这个命令然后手动复制地址到浏览器!
jupyter-notebook --no-browser
但是配置之后,meep还是无法正常使用orz…这里做一个统计,在超算,个人电脑的虚拟机上用上述方法安装,都是成功并且能跑一些简单代码的。而在工作站wsl上是不成功的…我放弃了…
但是!!!!在我重新创建了一个虚拟环境之后,所有指令又都能用了!!!一切又都正常了!!!!真是搞不懂啊!!!但好歹是成功了!!
- 本文链接:https://www.northarea.tech/0x004/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
所以如果是重要的评论,建议跳转 GitHub Issues 发表。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues