【发布时间】:2017-06-28 22:51:06
【问题描述】:
我是 Python 新手,最近在 Windows 10 上安装了 PyCharm 2016.3。我也在使用 Anaconda 3。
我对包管理知之甚少,希望更好地了解它。通常我只使用conda update --all,但我注意到(通过检查我本地 PyCharm 解释器的包列表)这不会将所有包升级到最新版本。
其中一个包是 Pillow,它的版本为 4.0.0,但 conda (4.3.11) 不会将其更新到 3.4.2 之后。我试过conda install pillow: 4.0.0 得到:
UnsatisfiableError: The following specifications were found to be in conflict:
- pillow 4.0.0*
- python 3.5*
- spyder-app
Use "conda info <package>" to see the dependencies for each package.
后来我发现 Pillow 也可以在 conda-forge 上使用,所以我尝试了 conda install -c conda-forge pillow=4.0.0 并得到:
The following NEW packages will be INSTALLED:
libiconv: 1.14-vc14_4 conda-forge [vc14]
libxml2: 2.9.3-vc14_9 conda-forge [vc14]
olefile: 0.44-py35_0 conda-forge
vc: 14-0 conda-forge
The following packages will be UPDATED:
freetype: 2.5.5-vc14_2 [vc14] --> 2.7-vc14_0 conda-forge [vc14]
jpeg: 8d-vc14_2 [vc14] --> 9b-vc14_0 conda-forge [vc14]
libtiff: 4.0.6-vc14_2 [vc14] --> 4.0.6-vc14_7 conda-forge [vc14]
pillow: 3.4.2-py35_0 --> 4.0.0-py35_2 conda-forge
The following packages will be SUPERCEDED by a higher-priority channel:
conda: 4.3.11-py35_0 --> 4.2.13-py35_0 conda-forge
conda-env: 2.6.0-0 --> 2.6.0-0 conda-forge
qt: 4.8.7-vc14_9 [vc14] --> 4.8.7-vc14_6 conda-forge [vc14]
我决定不继续,而是尝试pip install pillow。由于此命令不要求确认软件包已简单安装。现在,当我输入 conda list 时,我得到:
Pillow 4.0.0 <pip>
pillow 3.4.2 py35_0
PyCharm 解释器的包列表现在显示 Pillow 为 4.0.0 版,但 conda update pillow 仍然返回:
# All requested packages already installed.
pillow 3.4.2 py35_0
我的问题是:
1) 我应该依靠什么来使我的所有软件包保持最新,而不会出现兼容性问题?
2) 为什么conda install pillow: 4.0.0 会返回错误而conda install -c conda-forge pillow=4.0.0 没有?
3) 依赖列表中pillow 4.0.0和python 3.5旁边的*是什么意思?
4) 从现在开始,我同时拥有 Pillow 3.4.2(/anaconda3/pkgs)和 Pillow 4.0.0(/anaconda3/lib/site-packages)如果我导入 Pillow,会使用哪一个?
5) 取代 conda: 4.3.11-py35_0 --> 4.2.13-py35_0 conda-forge 是否意味着 conda 正在降级?
6) 标签 pip、py35_0、py35_4、np111py35_2 等有什么区别?
7) PyCharm 告诉我 Jinja2 包的版本为 2.9.5,但普通的 conda 和 conda-forge 只能找到 2.9.4。 PyCharm 从哪个渠道获取这些信息?
【问题讨论】:
-
有很多人已经讨论了这个讨论的每个部分:stackoverflow.com/search?q=conda+vs+pip FWIW:我的个人意见是不要参与 conda,而只是使用 pip。 Pycharm 是一个编辑器。
-
@Kelvin 感谢您的反馈!我意识到 conda vs pip 之前已经讨论过,但是如果您阅读我的帖子,您会发现我不只是要求对两者进行比较。我最后问了一些我在这里没有看到回答的具体问题。你能帮我解决其中的任何一个吗?我也意识到 PyCharm 是一个编辑器。我只是指它检查包是否是最新的能力。
标签: python pip pycharm packages conda