使用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

Python有三种常用的虚拟环境管理工具,分别是virtualenv、venv和conda。其,venv是Python自带的虚拟环境管理器,而virtualenv则是一个第三方库,而conda则是一个独立的虚拟环境和包管理工具。 引用提到了如何使用virtualenv和venv创建虚拟环境,并且可以通过指定不同的Python解释器来控制虚拟环境的Python版本。这对于需要在不同的Python版本之间切换的开发者来说非常有用。 引用指出了conda相比于virtualenv/venv的一个重要优势,即在使用conda时,虚拟环境的Python版本不受系统Python版本的限制。这意味着可以在同一台机器上同时使用不同版本的Python,而不会相互冲突。 引用对venv和conda进行了比较,指出了它们的一些区别。venv是一个虚拟环境管理器,而pip是一个包管理器,而conda则结合了两者的功能。虽然conda的包管理器功能相对较弱,大多数时候还是使用pip来安装包。但是,conda可以安装一些非Python的工具软件,而pip只能安装Python的包。此外,conda的虚拟环境管理功能相对较好,允许多个项目共享一个虚拟环境,并且虚拟环境是独立于操作系统解释器环境的,不受操作系统解释器版本的限制。 总结起来,虚拟环境管理工具venv和virtualenv主要用于创建和管理Python虚拟环境,而conda则更强大一些,除了可以创建和管理虚拟环境外,还可以安装非Python的工具软件,并且不受系统Python版本的限制。具体选择哪种工具可以根据具体的需求和项目特点进行选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python3基础知识复习 -- 虚拟环境(conda VS venv)](https://blog.csdn.net/peanutfish/article/details/125023770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值