通过anaconda安装python包_在anaconda prompt下直接pip安装包,和进入Python环境下pip安装包的区别?...

既然没有人愿意站出来唱唱反调,那我来吧。

------ 卢娜·洛夫古德

更新

2020年6月21号

通过谷歌搜索,我大体明白了anaconda下pip安装和conda安装的不通

对于conda install,所安装的包以及依赖包均在各自的环境下独享,与其他环境无关,被封闭在各自的环境沙盒中

对于pip install,当你新建环境时,anaconda并没有在新建的环境中新建pip,此时只有anaconda默认的环境有pip

所以此时你用pip install,所安装的包和依赖包均在anaconda默认的环境中,其他环境共享这个包的使用。

解决办法:

在新建的环境中,conda install pip,重新安装环境独享的pip安装包

然后用 which -a pip

查看新建环境的路径>which -a pip

/home//.local/bin/pip

/home//.conda/envs/newenv/bin/pip

使用新环境下的pip去安装包以及依赖,这样才会是你新环境独享的。

思考:

conda的作用就是能够协调好不同版本python环境之间的冲突以及有效隔离和方便切换

conda install 也非常完美的达到了这个目的

但是对于不是亲儿子的pip install,anaconda却使用了截然不同的策略,具体里面的实现机理我不太懂,但是按照常识来说,conda install和pip install不应该是一样的目的么?只不过是安装的包有所不同罢了,没想到安装方式也有这样的不同。

---

我理解题主。

我也有相同的疑问

对于PC

之前没有单独安装过Python,那么系统是干净的。

安装Anaconda之后,Anaconda会自动帮我们安装一个Python环境,这个Python环境对应的是base(root)。

直接运行CMD,输入python,系统显示的python是我们的base(root)环境,也就是Anaconda默认的Python环境,但是会显示这个环境没有激活,所以不建议直接用CMD命令行去运行Python

打开Anaconda或者运行anaconda prompt,这样运行的base(root)Python是默认激活的,我们可以正常使用。

如果使用conda install,那么安装的包是属于这个base(root)环境的。

如果再建立一个虚拟环境,比如test环境的Python

在Anaconda或者anaconda prompt下激活这个test环境

使用conda install安装的包,只安装在了test环境下,通过anaconda环境管理界面我们可以清楚的看到各个环境所拥有的包。

但是!!!

不通过conda install,而是pip install,我不太了解其安装的包到底是在哪里,是每个环境独享?还是Anaconda环境下共享?安装到哪个位置去了?我记得有一次我通过pip安装,出错了,显示权限问题。

对于MAC

MAC系统自带了一个Python环境,是Python2.7.3

未安装Anaconda之前,你在terminal窗口输入python

会跳出系统默认的python2.7.3

安装Anaconda完成之后,你在terminal窗口输入python

会跳出Anaconda默认的环境base(root)环境python,是Python3.7.6

也就是说,目前MAC系统下共有两个Python环境,一个MAC系统内置的2.7.3,一个Anaconda默认的base(root) 3.7.6

MAC比Win下的一大好处是,Win好像是采用了什么动态链接啊什么的技术,所以不允许Anaconda直接进驻CMD,而MAC下就自由的多,Anaconda可以完全接管系统的Python

此时只要关注terminal窗口开头的环境名称就可以了,如果是base(root),那就是Anaconda默认的Python环境

如果你新建了一个test环境,直接Activate test,前面的环境名称换成test,那么就切换到test环境了

在各自的环境名称下用 conda install安装的包,都在各自的环境文件夹下,

也就是说,其他环境不能用这个环境安装的包,每个安装的包以及依赖包都是每个环境独享的,

如果你remove这个环境,那么其所拥有的包也完全被删除,这真是洁癖者的福音!!!

但是!对于pip install,我就有同一个疑问了,pip install安装的包是否也如conda install一样,是独立于其他环境,亦或者是默认安装到了MAC系统默认python的环境位置中?还是安装到了Anaconda默认环境中?还是说Anaconda下的所有环境共享??

总结

用PyCahrm就用过几次,主要是看看学生license怎么样,然后pycharm自己也能帮着安装包,所以就更加糊涂了,毕竟不是计算机专业出身

我目前使用的是VSCODE,通过Python插件可以很轻松的切换不同的Python环境,无论是在WIN下还是MAC下都可以正常切换

但是在安装包的时候

在WIN下,我还是习惯于去Anaconda或anaconda prompt下使用conda install去安装各个环境各自独享的condaforge下的包

在MAC下,我习惯于通过terminal先确认前面的环境名字,然后通过conda install去安装各个环境各自独享的condaforge下的包

所以,还是期待大神和计算机专业人士能够通过通俗易懂的语言讲解下,pip安装和conda安装的区别,不是他们所要安装的包的区别,而是他们安装方式的区别,是共享?还是独享?还是怎么回事。

你可能感兴趣的:(通过anaconda安装python包_在anaconda prompt下直接pip安装包,和进入Python环境下pip安装包的区别?...)