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

Python Conda显示请求库的两个版本,python,conda,miniconda,Python,Conda,Miniconda,我是刚来康达的,看到一些奇怪的东西,但我不知道这是否是个问题 我目前在根环境中。在某个时候,我试图在另一个环境中安装pip,但不小心只是运行了pip安装请求。这似乎已将其安装在我的根环境中: $ conda list | grep requests requests 2.12.4 py36_0 requests 2.13.0 <pip>

我是刚来康达的,看到一些奇怪的东西,但我不知道这是否是个问题

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

$ conda list | grep requests
requests                  2.12.4                   py36_0  
requests                  2.13.0                    <pip>
我的猜测是,同一个软件包的两个版本放在一起会引起以后的头痛。然后我的假设是我最好还是保留非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安装请求
让我回到第1步(有两个版本的请求)

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

  • 激活要安装软件包的conda环境
  • 运行
    pip安装任何程序
  • 它应该显示在当前环境的
    conda列表中
  • 但是,这对我不起作用-已安装的软件包显示在
    conda列表--name root
    下,而不是当前环境中


    因此,有几个问题:

  • 在我的conda根目录中有两个
    请求的副本是否有问题
    
  • 如果这是一个问题,我该如何解决它
  • 如何在conda环境中使用pip
  • 在我的conda根目录中有两个请求副本是否有问题
  • 可能吧

  • 如果这是一个问题,我该如何解决它
  • 在我的测试中,
    conda-remove
    然后是
    pip-uninstall
    起作用。(在此之后,您可以只使用conda重新安装请求。)但如果出现问题,请删除
    ../lib/python3.6/site-packages/requests-2.13.0.dist-info
    。这似乎对我有用

    FWIW,我只能通过先用pip安装,然后再用conda再次安装来复制双重安装

  • 如何在conda环境中使用pip

  • 你在OP中的总结是正确的。只需激活conda环境并像平常一样使用pip即可。我的经验法则是安装带有
    conda
    的软件包(如果可用),否则就求助于
    pip

    感谢您的详细回复——但当我尝试
    conda删除请求时,我得到:
    condaenvironment错误:环境错误:无法删除python、pycosat、ruamel\u yaml、conda、openssl、,来自根环境的请求
    Oops,我正在试验一个非根环境。(我早该知道你会看到那个错误…)好的,你有没有试过“如果出现问题…”的建议?也就是说,只需删除dist info
    文件夹,然后查看“pip”版本是否从列表中消失。另一个技巧是:当您的根环境确实出现问题时,您可能需要重新开始安装conda。但有时您可以使用单独的安装来修复第一个。如果从新的conda安装运行它,我猜
    conda remove-p/path/to/original root env requests
    会起作用。然后您可以重新安装
    请求
    $ pip uninstall requests
    [asks for confirmation, say yes]
    $ conda list
    [traceback, which I can post if helpful. Summary is:]
    ModuleNotFoundError: No module named 'requests'