Conda显示了两个版本的请求库

时间:2017-04-06 11:28:50

标签: python conda miniconda

我是康达的新手并且看到了一些奇怪的东西,但我实际上并不知道这是不是一个问题。

我目前处于根环境中。在某些时候,我试图在另一个环境中安装pip,但不小心只是跑了pip install requests。这似乎已经在我的root环境中安装了它:

$ conda list | grep requests
requests                  2.12.4                   py36_0  
requests                  2.13.0                    <pip>

看起来像pip版本是我在运行python时获取的东西:

$ python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 12:22:00) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests; requests.__version__
'2.13.0'

我的猜测是,同一个软件包的两个版本会在以后引发令人头疼的问题。然后我的假设是我最好保留非点子版本,所以我尝试了这个:

$ pip uninstall requests
[asks for confirmation, say yes]
$ conda list
[traceback, which I can post if helpful. Summary is:]
ModuleNotFoundError: No module named 'requests'

然后pip install requests让我回到方格1(有两个版本的请求)。

最后,我想知道如何防止这种情况再次发生。根据{{​​3}},如果我想使用pip在conda环境中安装包,我应该:

  1. 激活要安装软件包的conda环境
  2. 运行pip install whatever
  3. 它应该在conda list中显示当前环境。
  4. 但是,这对我不起作用 - 已安装的软件包显示在conda list --name root下,而不是在当前环境中。

    所以,一些问题:

    1. 在我的conda根目录中有requests的两个副本是一个问题吗?
    2. 如果这是一个问题,我该如何解决?
    3. 如何在conda环境中使用pip?

1 个答案:

答案 0 :(得分:2)

  
      
  1. 在我的conda root中有两个请求副本是否有问题?
  2.   

可能。

  
      
  1. 如果这是一个问题,我该如何解决?
  2.   

在我的测试中,ProcessConsoleManager后跟conda remove就可以了。 (之后您可以仅使用conda重新安装请求。)但如果出现问题,请删除pip uninstall。这似乎对我有用。

FWIW,我只能通过首先使用pip 安装来重现双重安装,然后再次使用conda进行安装。

  
      
  1. 如何在conda环境中使用pip?
  2.   

OP中的摘要是正确的。只需激活conda环境并像往常一样使用pip。我的经验法则是安装包含.../lib/python3.6/site-packages/requests-2.13.0.dist-info的软件包(如果可用),否则请使用conda