最近使用xemsf包库[xemsf]处理nc文件的气象数据,发现它没有Windows版本,只能在Linux和macOS平台使用,于是只能曲线救国,使用wind10自带的虚拟机安装docker,并在docker中安装miniconda,然后将docker连接到Pycharm Pro (version:2021.3)。
docker可以看作是轻量级的虚拟机,它包含了你创建好的系统配置(包括各种应用),可以方便地分享而免去其他人再次配置环境的繁琐步骤,更多docker介绍请参考文章【1】。
(1) 先激活wind10自带的虚拟机Hyper-v。
(2)下载docker desktop,注册docker账号,安装, 并按下图设置勾选红框项:
(3)pull一个现成的image–miniconda3并运行它的一个实例容器:
docker pull continuumio/miniconda3
docker run -i -t continuumio/miniconda3 /bin/bash
然后,在docker账号中创建自己的repository,如本人创建的为liangchangmao/wyj_1。
在conda容器中创建新的虚拟Python环境,安装xemsf。
接着打开新的命令终端,上传commit这个变更了的容器到自己的repository中成为一个新的image:
docker commit changed_container_id liangchangmao/wyj_1
PS:查看正在运行的容器可以得知容器的id:
docker ps -a -f status=running
然后仿照(3)运行这个更改后的image的一个实例容器
(4) 连接到专业版的pycharm(社区版的pycharm不支持docker)。
file–settings–Build, Excution, Deployment–Docker ,填写(2)中的docker参数:
然后,在运行容器的命令终端中查看Python路径:
which python
得到具体路径并填入pycharm中,如下图红框处:
此时即可成功连接docker的conda里的Python环境(需要保证docker desktop打开而不必进入image的容器container),若再conda环境中安装了新的包库则需要提交commit新的image到云端的repository,如下图所示dask不能成功导入:
提交commit新的image:
重新运行,成功导入dask:
(5)退出docker:
exit
或者直接组合键Ctrl+P+Q,最好不要直接关闭终端,否则再次启动docker容易出错。
首次安装docker运行后发现电脑变卡,这是因为虚拟机进程vmmen占用了将近八成的电脑内存,故有必要重新设置虚拟机的内存分配,限制它的性能从而达到优化目的。
参考博文【2】,先win+R输入%UserProfile%进入用户文件夹,创建一个文本文件输入一下内容:
[wsl2]
memory=4GB
swap=8GB
localhostForwarding=true
保存文件,并重命名为.wslconfig,并在命令行终端运行
wsl .wslconfig
重启docker即可。
【1】了解docker基本概念:https://towardsdatascience.com/how-docker-can-help-you-become-a-more-effective-data-scientist-7fc048ef91d5
【2】配置wind10虚拟机Linux的内存:https://www.cnblogs.com/q1359720840/p/14198460.html
【3】docker中的conda环境连接到pycharm:https://stackoverflow.com/questions/52049202/how-to-use-docker-and-conda-in-pycharm
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)