结论速递
1 问题概述
为什么需要多环境?
- 第一个理解是,在安装一些开发中或者开发未完善的python库时,总是会遇到一些需要依赖库版本不一致的问题。
比如最近遇到的一个问题是PyTorch Geometric库,会建议配置PyTorch版本为1.8.0打头,而另一个库比如NeuralProphet,则要求PyTorch<1.7。这个时候如果它们装在一个环境下就会导致PyTorch库版本混乱,有的库可用而有的库不可用。(事实上后面那位仁兄,还有有很多雷可以踩,比如pandas,numpy,seaborn,scikitlearn XD,不怪它,怪我)
类似的经常引起冲突的依赖库还包括Numpy,Pandas,装完一个新的库另一个依赖于Numpy的库报废了的血与泪可没少流,把所有库的版本都统一显然是太过于麻烦了,也没那个必要(python的各个库迭代这么快,别和他们作对)。所以在装不是非常通用的库的时候,可能会优先考虑进行新环境创建,防止把前面的环境干掉。 - 第二个理解是,想跑一些模型或者论文源码的时候,需要使自己的运行环境和这些源码一致,把自己的base环境全部重配显然是不现实的,就可以新建environment,来简化这个过程。当然更省心的方式可能是colab,还是看个人喜好。
- 还有一个简单粗暴的理解,就是想玩多个python版本,每个版本当然至少要一个environment。
多环境配置完需要做什么
创建了新环境,还需要使IDE在各环境下通用。这边我习惯使用的IDE是spyder和jupyter lab。他们都可以实现在多环境下使用。
本文简单记录一下实现过程,方便回头查阅。(鸣谢@BH提醒需要把这个记录下来)
2 新环境创建及摧毁
记录一下一些常见的语句。此处参考了笔记conda创建新环境。
首先是创建新环境
conda create --name yourEnv python=3.7
create --name
后面跟命名,然后可以指定python版本。
然后一定要记得,创建完了,别着急装包,先切换到新建的环境里
conda activate yourEnv
退出环境,可以通过切换到另一环境的形式
conda activate base
或者,退出激活
conda deactivate yourEnv
环境配烂了怎么办,没关系!可以直接摧毁重建,不会毁掉你的其他环境,完全没有负担!
摧毁语句(摧毁前,记得先退出你想要摧毁的环境)
conda remove -n yourEnv --all
然后还有一些花里胡哨的语句,比如,查看有多少个环境
conda info -e
*
表示当前所在的环境,其实语句前面的(base)
也提示了当前在base环境下。
3 IDE的通用
3.1 Spyder
pip install spyder
但是使用的时候要记得!你可以打开任意一个Spyder,但是如何确保Spyder知道用哪个环境来算呢。要记得到Perference那里,切换当前引擎
选完了之后记得重启kernal,不然白选
3.2 Jupyter lab
pip install jupyterlab
然后,在建好的环境里头(就是你要激活这个环境),配置ipykernel(其实也可以在建的时候就配上,不过我习惯分开做,建的时候配上可以参考这个博客)
python -m ipykernel install --user --name yourEnv --display-name "yourEnvName"
上句子中对应的yourEnv
就是要配ipykernel的环境名,yourEnvName
对应到时候在Jupyter里头显示的名字。
如果提示找不到ipykernel
,那就先
conda install ipykernel
然后对每一个环境重复就好,就可以配完了。
在使用的时候,可以在新建文件的地方选择对需要的引擎
然后也可以在笔记本右上方选择/切换kernel类型
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/dataspell/4565.html