10

我是 conda 的新手,看到一些奇怪的东西,但我实际上不知道这是否是一个问题。

我目前在根环境中。在某些时候,我试图在另一个环境中安装 pip,但不小心运行了pip install requests. 这似乎已将其安装在我的根环境中:

$ 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 版本,所以我尝试了这个:

$ 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 格(有两个版本的请求)。

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

  1. 激活要安装包的 conda 环境
  2. pip install whatever
  3. 它应该显示在conda list当前环境中。

但是,这对我不起作用 - 安装的包显示在当前环境下conda list --name root而不是在当前环境中。


所以,几个问题:

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

1 回答 1

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

大概。

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

在我的测试中,conda remove其次pip uninstall是诀窍。(之后您可以只使用 conda 重新安装请求。)但是如果出现问题,请删除.../lib/python3.6/site-packages/requests-2.13.0.dist-info. 这似乎对我有用。

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

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

您在 OP 中的摘要是正确的。只需激活 conda 环境并像往常一样使用 pip 即可。我的经验法则是安装conda可用的软件包,pip否则使用。

于 2017-04-07T21:10:55.273 回答