不,conda update
和 conda install
不会更新使用 pip
安装的软件包,也不会使用 pip
安装它们。
这些 conda
命令只会检查您的“默认”anaconda-channels或使用 -c
指定的那些频道,并忽略其他所有内容。唯一的例外是 conda list
,它还显示使用 pip
安装的软件包,这些软件包带有 <pip>
标记,并且不会被更新。
pip
和 six
的示例:$ conda create -n testenv python=3.5
Fetching package metadata .................
Solving package specifications: .
Package plan for installation in environment testenv:
The following NEW packages will be INSTALLED:
pip: 9.0.1-py35_1
python: 3.5.3-3
setuptools: 27.2.0-py35_1
vs2015_runtime: 14.0.25123-0
wheel: 0.29.0-py35_0
Proceed ([y]/n)? y
$ activate testenv
使用pip
(旧版本)安装six
:
(testenv) $ pip install six==1.6
Collecting six==1.6
Downloading six-1.6.0-py2.py3-none-any.whl
Installing collected packages: six
Successfully installed six-1.6.0
conda update
不能更新它(请注意,six
未在“所有请求的软件包”列表中列出,但它在conda list
中列出):
(testenv) $ conda update --all
Fetching package metadata .................
Solving package specifications: .
# All requested packages already installed.
# packages in environment at testenv:
#
pip 9.0.1 py35_1
python 3.5.3 3
setuptools 27.2.0 py35_1
vs2015_runtime 14.0.25123 0
wheel 0.29.0 py35_0
(testenv) $ conda list
# packages in environment at testenv:
#
pip 9.0.1 py35_1
python 3.5.3 3
setuptools 27.2.0 py35_1
six 1.6.0 <pip>
vs2015_runtime 14.0.25123 0
wheel 0.29.0 py35_0
但是它可以通过 pip
进行升级:
(testenv) $ pip install six --upgrade
Collecting six
Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: six
Found existing installation: six 1.6.0
Uninstalling six-1.6.0:
Successfully uninstalled six-1.6.0
Successfully installed six-1.10.0
仅仅是为了展示在anaconda渠道中有一个更新的six
版本(当我执行conda update
时被忽略了):
(testenv) $ conda install six
Fetching package metadata .................
Solving package specifications: .
Package plan for installation in environment testenv:
The following NEW packages will be INSTALLED:
six: 1.10.0-py35_0
Proceed ([y]/n)?
conda config --set pip_interop_enabled true
。可以更新/更改可由conda“管理”(即删除)的非conda安装的Python软件包以满足当前解决方案。可管理的软件包通常是从wheels安装的。使用较新版本的pip安装的sdist也通常是可管理的。但是,如果版本相同,则conda不会将非conda安装的软件包替换为conda软件包。pip install -e
进行的“可编辑”安装。conda update --all
。conda list
查找标记为pypi的软件包,然后使用pip --upgrade
进行批量升级(假设它们已过期;否则将返回标准的Requirement already up-to-date
消息)。@echo off
set packages=pip install --upgrade
for /f "tokens=1" %%i in ('conda list ^| findstr /R /C:"pypi"') do (call :join %%i)
@echo on
%packages%
@echo off
goto :eof
:join
set packages=%packages% %1
goto :eof
conda create --clone
命令是否也不会克隆 pip 包? - user3731622