使用Anaconda建立虚拟环境隔离不同的安装包

通过Anaconda中的conda包管理,可以建立不同的虚拟环境,就像docker一样,每个虚拟环境中的可以安装不同版本的包,避免互相冲突。

具体操作如下:

1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。

2、conda常用的命令。

    1)conda list 查看安装了哪些包。

    2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境

    3)conda update conda 检查更新当前conda

3、创建Python虚拟环境(如python3.6)。

     使用 conda create -n your_env_name python=3.6

anaconda 命令创建python版本为3.6、名字为your_env_name(笔者这里创建了一个pycareonly)的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。

4. 将包安装到指定的虚拟环境

笔者尝试了先用conda activate your_env_name,然后pip install的方式,结果悲剧地发现还是安装在了主环境下,造成了之前的程序不能正常使用了。

例如scikit-learn里的包就出错了:

目前是参考了https://www.zhangshengrong.com/p/JKN8EkGeX6/

安装包的时候指定安装虚拟环境所在的目录:

5. 在jupyter-notebook中切换不同的conda kernel

命令行输入:

conda install nb_conda_kernels

如果报错如下:

RemoveError: 'requests' is a dependency of conda and cannot be removed from conda's operating enviro

说明conda不够新,那么需要:

conda update conda

然后还不行,还需要在虚拟环境中安装jupyter:

conda install -y jupyter

然后退出虚拟环境,进入jupyter-notebook就可以了。

目前只搞定了在jupyter-notebook中切换不同的conda kernel,在spyder中切换还没有搞定。

貌似也要在虚拟环境中安装spyder。

 

6. pip install --user的坑

目前电脑上有三个地方有python的包,分别是:

目录1:C:\Users\xuzh\AppData\Roaming\Python\Python36\site-packages(当使用pip install --user时,会将python包安装到此目录下)

目录2:c:\Users\xuzh\Anaconda3\Lib\site-packages\

目录3: c:\Users\xuzh\Anaconda3\envs\pycareonly\Lib\site-packages\

所有通过pip install --user安装的包都会被安装在目录1下。

 

这三个目录在我的电脑上是这么个顺序:

目录1->目录2或者目录3

如果目录1下有包就导入目录1下的,如果目录1下没有再根据目前的环境判断是导入2或者3

这一点从python的path也可以验证。

这是base环境下的python路径

这是pycareonly虚拟环境下的路径:

可以看出AppData\Roaming\Python\Python36\site-packages都是在site-packages上面的

结论是pip install --user和虚拟环境是冲突的,无法起到隔离包的作用。

不要使用pip install --user的方法,而是要尽量使用虚拟环境。

 

7. 后记

通过在jupyter-notebook中切换虚拟conda环境+virtualenv结合vscode使用,目前可以满足绝大部分的需求了。

 

参考:

https://www.cnblogs.com/swje/p/7642929.html

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值