本文针对Windows环境配置
众所周知,由于环境隔离等优质原因,我们在进行AI开发的时候经常使用Conda进行包与环境管理,我们使用它进行多环境管理,在一台机器上运行多个Python环境。
然而,很多同学在本节课认识Conda之前已经有了一个长期使用的Python,并安装了很多库,比如我,torch、数学建模相关、爬虫相关、后端开发等库都扔了进去。很难放弃原环境重新配置,那么今天我就用自己踩坑经历教大家如何使其与conda和谐共处,**而且可以使用conda进行环境隔离
对了,如果你还没有看过学长的工具配置指南,建议先去看下,就在这个语雀的资源库里**

Step 1 安装Conda

想要使用Conda管理环境,必须安装Conda,这里我推荐Miniconda而不是anaconda,因为Miniconda大小极小,而且你可能并不需要anaconda自带的大量Python库。一路下来点击安装,最后不要选择添加到环境变量,而是建议手动添加环境变量到名为PATH的环境变量中。
环境变量如下图:
enviro.png
(其中,Conda为其安装文件夹,内部有python、cona、Libary等多个目录)
哦对了,别忘记将PATH原来的Python的路径删除了,他们是:原Python路径(如D:\Python)、原Python路径下的Script文件夹(如D:\Python\Script)
此时,打开命令行,输入conda --version
conda_version.png
出现如图所示的版本号即可继续使用conda

Step 2伺候好你的conda

如果你和我一样,在Windows下喜欢使用PowerShell作为命令行Powershell yyds那么你将遇到一个问题——你好像没有办法激活环境,但是在CMD下似乎可以
众所周知(看过学长文档的同学都知道),你需要激活环境才可以进行开发,那么问题来了,我们如何继续使用强大的Powershell进行开发呢?
以管理员身份进入Powershell,输入conda init powershll,并查看信息,如果OK了,此时应该出现很多change 和 no change信息,重启Powershell,如果在左侧出现了base环境(如下图),恭喜你,你成功了。
ps.png
什么?出现了无法执行.ps脚本,失败了?重启powershell也没有(base),接着看下面。
以管理员身份打开PowerShell一定是管理员!因为这涉及到注册表的问题。
执行set-ExecutionPolicy RemoteSigned
execute_script.png
输入Y,然后执行get-ExecutionPolicy如果输出为RemoteSigned,则说明可以执行ps脚本,再次输入conda init posershell即可成功。
当你的环境为base后,输入python -V,如果为你的conda环境,则说明conda无问题。

Step 3 导入原Python环境

到了最激动人心的时刻——导入原Python的时刻了
这里要给大家泼一盆冷水,目前我并未找到将其作为一个conda环境导入的方法,这也就意味着虽然我们可以使用conda管理环境,但是不能使用conda在此环境内进行Python包管理和导出环境中的包(也就是说你不能conda install),但是别担心,你依旧可将其作为一个环境正常使用,并和其它conda环境和谐共处、互相隔离,互不干扰,且不需要重装大量库
将你原本的Python(文件夹)找到,并剪切进入目录
\conda安装目录\envs中,以我的为例,应放入D:\Productors\Conda\envs中,建议对其进行更名操作(比如我将其更名为了util,以后就以此作为原Python环境名)
position.png
此时,你输入conda env list此时你发现仍然只有base
only_base.png
但是,当你输入conda activate util(util是我python环境名)奇迹发生了!你的环境变成了原来的你亲爱的Python!
two_py.png
个人理解,这个时候你的python被conda作为一个环境管理,但是它并非conda生成的环境,无法导出环境信息,但仍然可以被conda管理,进行环境隔离等。
但是别高兴太早,你的工作还远远没有结束,如果你此时启用pip,输入pip -V你会发现,woc我pip呢???怎么爆出了Fatal Error(致命错误)
这是因为,在Python\Script\目录下的exe文件,都要使用python启动,而更比较尴尬的是,这些exe中都将python目录写死了,也就是说python一移动,这些库就罢工,非常的难受,不过好在pip我们可以自己get,具体方法是:
访问https://bootstrap.pypa.io/get-pip.pyCtrl-s将页面作为Python文件直接保存下来
get_pip.jpg
然后命令行cd到get-pip.py的文件夹,此时的环境应该是你的原python环境(也就是util),输入python .\get-pip.py即可重新安装你的pip
此时,输入pip -V 查看是否成功安装pip
pips.png
针不戳

Step 4 与VScode互动、调整EXE库等

首先,由于我们删掉了原python的PATH环境变量,移动了Python环境,所以现在VSCODE找不到原来的解释器路径了,需要手动选择。
确保安装了Python和 Jupyter扩展
pyext.pngjuext.png
打开Python工作区,点击F1,输入Select Interpreter
selectint.png
手动选择util的解释器(在文件夹内,名为python的可执行文件)
选择好后即可继续使用Vscode

调整部分库

还记得之前讲pip的时候告诉大家的,关于Script文件夹下的二进制文件无法在命令行中正常启动的事情吗?这是由于python发生了移动,而这些文件里的Python路径是写死的。那么我们如何调整使其正常工作呢?其实很简单,用pip重新装就好了(
以后端库Django为例,如果不做调整直接在命令行django-admin则会发生和之前pip一样的错误,此时只需要

  1. pip uninstall django
  2. pip install django

就可以正常使用了
而对于DL比较重要的,则是重装jupyter,你需要

  1. pip uninstall ipython
  2. pip uninstall jupyter
  3. pip uninstall jupyter_core
  4. pip uninstall jupyter-client
  5. pip uninstall jupyter-console
  6. pip uninstall notebook
  7. pip uninstall jupyter-lab
  8. pip uninstall jupyter-console
  9. pip uninstall qtconsole
  10. pip uninstall jupyterlab-widgets

上述可能会报没有模块错误,说明有的你并没有安装,不用管
然后重新装上

  1. pip install ipython
  2. pip install jupyter
  3. pip install notebook

就可以了(现要jupyter-lab的也可以装上)