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


    先来说明我的问题:首先我在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 并人为赋值即可。这样我的问题到此就解决了。

    问题思考

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

     因为这是实验室的服务器大家共用,然后有人将自己的虚拟环境包路径添加到了系统路径中,因此,在我们的虚拟环境中运行程序时,python编译后,找包时,优先去了该虚拟环境,才导致了我开头的问题。我们只需将USER_SITE 和 USER_BASE 改成我们自己的路径就好了(如果我们不想修改系统路径的话,个人建议不要随便修改系统路径,因为机器是大家的)。

    到此,我们就知道了在虚拟环境中使用pip install 和 conda install 的区别和以及运行时的一些要注意的点。
    ————————————————
    版权声明:本文为CSDN博主「NuerNuer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_41368074/article/details/107783636

  • 相关阅读:
    Android(安卓)全套开发资料视频+源码
    腾讯qlv视频转为MP4格式工具
    优酷爱奇艺视频转换为MP4格式工具
    JAVA全套资料含视频源码(持续更新~)
    PPT、Word、Excel模板免费下载
    图片下载
    aspx使用KindEditor副文本框插件出现检测到有潜在危险
    跨域请求
    WEUI滚动加载
    jq复制
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/14660246.html
Copyright © 2020-2023  润新知