ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

conda虚拟环境下pip install 和 conda install 的区别 以及 查看 和 修改 虚拟环境下运行路径

2021-12-01 11:00:47  阅读:232  来源: 互联网

标签:anoconda3 envs 路径 site 虚拟环境 conda install 安装


以下内容转载自: https://www.cnblogs.com/yibeimingyue/p/14660246.html

 

先来说明我的问题:首先我在anoconda下建立了自己的虚拟环境,并在我的虚拟环境中用pip安装了对应版本的tensorflow,但是再调用的时候,我发现并没有调用我安装的tensorflow版本。导致我的代码无法运行。因此我产生了一个疑惑,pip安装的包和conda安装的包的位置是否不同,我在运行的时候到底用的是那个环境下的包。

注:miniconda3 和 我文中提到的anoconda3差不多,因为大部分是anoconda3,因此虽然机器上装的是miniconda3,但文章中在写的时候用的是anoconda3,只是命名的问题。

经查阅资料发现:

1.使用conda install在虚拟环境中安装的包都存放在了/anoconda3/pkgs 这个路径下,然后,我们在我们的虚拟环境中要用到或下载时先到该路径下去找,若有则直接将其复制到我们的虚拟环境中包得存放位置:~/anoconda3/envs/xxx/lib/python3.6/site-packages/。若没有,则先下载到/anoconda3/pkgs,在复制到虚拟环境包的路径下。

2.而在虚拟环境中使用pip install 安装时,则直接将包安装在了~/anoconda3/envs/xxx/lib/python3.6/site-packages/路径下。

问题分析

到这里,我们就知道了二者安装包后包所在的位置,那么为什么还会出现我上面的问题呢,原因就是,你虽然在你的虚拟环境下运行代码,但是你的实际运行环境并不一定就是你的包的安装路径,也就是说,你虽然在你创建的虚拟环境中将一切包都安装好了,但是在运行代码,python在编译时,程序并没有去:~/anoconda3/envs/xxx/lib/python3.6/site-packages/这个路径下调用。而是去了优先级更高的别的路径下调用,自然就会出现上述问题。那么如何查看,我当前虚拟环境的实际运行路径呢?

我们使用 python -m site 来查看,结果类似下面:

 

 

 问题解决

查看USER_SITE 和 USER_BASE 是否对应了你的包安装的路径。如果不是,你就要将其按照上面的格式修改:

修改方式:打开 ~/anaconda3/envs/XXX/lib/python3.6/site.py

找到USER_SITE 和 USER_BASE 并人为赋值即可。这样我的问题到此就解决了。

问题思考

那么为什么会产生我这个问题呢,我仔细分析了一下,后来发现:

先来说明我的问题:首先我在anoconda下建立了自己的虚拟环境,并在我的虚拟环境中用pip安装了对应版本的tensorflow,但是再调用的时候,我发现并没有调用我安装的tensorflow版本。导致我的代码无法运行。因此我产生了一个疑惑,pip安装的包和conda安装的包的位置是否不同,我在运行的时候到底用的是那个环境下的包。

注:miniconda3 和 我文中提到的anoconda3差不多,因为大部分是anoconda3,因此虽然机器上装的是miniconda3,但文章中在写的时候用的是anoconda3,只是命名的问题。

经查阅资料发现:

1.使用conda install在虚拟环境中安装的包都存放在了/anoconda3/pkgs 这个路径下,然后,我们在我们的虚拟环境中要用到或下载时先到该路径下去找,若有则直接将其复制到我们的虚拟环境中包得存放位置:~/anoconda3/envs/xxx/lib/python3.6/site-packages/。若没有,则先下载到/anoconda3/pkgs,在复制到虚拟环境包的路径下。

2.而在虚拟环境中使用pip install 安装时,则直接将包安装在了~/anoconda3/envs/xxx/lib/python3.6/site-packages/路径下。

问题分析

到这里,我们就知道了二者安装包后包所在的位置,那么为什么还会出现我上面的问题呢,原因就是,你虽然在你的虚拟环境下运行代码,但是你的实际运行环境并不一定就是你的包的安装路径,也就是说,你虽然在你创建的虚拟环境中将一切包都安装好了,但是在运行代码,python在编译时,程序并没有去:~/anoconda3/envs/xxx/lib/python3.6/site-packages/这个路径下调用。而是去了优先级更高的别的路径下调用,自然就会出现上述问题。那么如何查看,我当前虚拟环境的实际运行路径呢?

我们使用 python -m site 来查看,结果类似下面:

 

 

 问题解决

查看USER_SITE 和 USER_BASE 是否对应了你的包安装的路径。如果不是,你就要将其按照上面的格式修改:

修改方式:打开 ~/anaconda3/envs/XXX/lib/python3.6/site.py

找到USER_SITE 和 USER_BASE 并人为赋值即可。这样我的问题到此就解决了。

问题思考

那么为什么会产生我这个问题呢,我仔细分析了一下,后来发现:

标签:anoconda3,envs,路径,site,虚拟环境,conda,install,安装
来源: https://www.cnblogs.com/wal1317-59/p/15627924.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有