管理包:PyCharm vs conda vs pip

2024-03-04

我是 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.

后来我发现 conda-forge 上也有 Pillow,所以我尝试了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 I get:

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 didn't?

3)依赖项列表中pillow 4.0.0和python 3.5旁边的*是什么意思?

4)从现在起我有两个枕头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 从哪个渠道获取此信息?


好吧,我无法回答你所有的问题,但这里是:

1) Conda 遵循“前面的痛苦”方法来处理依赖/冲突解决。您必须让所有包在您可以用来制作包或将它们保存在一个环境中的存储库/通道中很好地协同工作。您可以尝试使用 --force 或 --no-deps 运行它尝试将其放入但是...这可能会在将来给您带来问题(我不知道这是否适用于 conda 的更高版本,它改变了很多)。只要保持软件包最新,并且最新,我就使用 pip。在过去的几年里它取得了长足的进步(https://glyph.twistedmatrix.com/2016/08/python-packaging.html https://glyph.twistedmatrix.com/2016/08/python-packaging.html)

2)我不完全确定,我相信这与提供一个明确的非url通道供conda查看有关。通常,您将其传递给 conda-forge 存储库的 URL(我认为,我们在内部不使用 conda-forge)。

3) * 表示您忽略补丁/构建 4.0.0 == Major.Minor.Build。同样,3.5* ==3.5任意版本

4)我会在终端中导入pillow,然后打印出模块以查看它是从哪里提取的,为什么猜测?

5)通过(虽然我这么认为)

6)

  • pip :表示您通过 pip 安装了该软件包。如果您这样做,它将不会被拾取conda 列表--显式
  • py35_0 :有要求/仅适用于使用 python 3.5 的环境/包
  • py35_4:不确定(总是忘记那个)
  • np111py35_2 :需要 python3.5 和 numpy 1.11 (我认为 *)

7)我倾向于避开pycharm,我相信你可以检查pycharm指向的python解释器,看看它所处的环境。基于根环境,你可以做康达信息并获取您指向的所有频道的列表。

注意:如果您打算使用 conda,您可能只想将 conda-forge 添加到您的频道列表中,而不是传递 -c (但是查看其他频道的组织方式应该可以帮助您了解应该如何传递 -c 标志)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

管理包:PyCharm vs conda vs pip 的相关文章

随机推荐

  • 合并最接近值的 Pandas

    我目前正在开发一个项目 在该项目中 我通过仪表指示 公里 匹配并合并两个 Excel 文档 这两个数据帧包含相同类型的数据 但略有不同 我对这个问题的解决方案是将每个数据帧除以 100 以便更轻松地匹配列 然而 正如我预测的那样 有时这不起
  • 如何查看上次 git pull 的时间?

    I did a git pull但现在想知道那件事发生在什么时间 有没有办法检查拉动的时间 请注意 当我进行拉动时 没有发生任何变化 但也许 SSH 连接已被记录 我想在本地计算机而不是服务器上检查这一点 使用 Linux git 版本 2
  • 使用 webView 时是否可以将 HTML 表单中的数据获取到 android 中?

    我正在 HTML 中制作一个非常简单的表单 可以使用 webview 在 android 中查看 该 webview 使用文本框接收您的姓名 当您单击按钮时 它会将其显示到一个段落中 并且它是使用 html 和 javascript 制作的
  • 如何隐藏ide主窗口标题栏? (在 IntelliJ IDEA 中)

    Title bar is completely useless for me Info it shows i can see in navigation bar It only takes space Is it possible to h
  • 提取分隔符之间具有特定长度的整数

    给定一个字符串列表 例如 L 1759 1 83 0 email protected cdn cgi l email protection email protected cdn cgi l email protection 1094 em
  • 如何根据 MVCContrib 网格中的数据设置行的样式?

    我正在修补MVCContrib 网格 http mvccontrib codeplex com wikipage title Grid并陷入如何根据数据格式化网格中的一行数据的问题 例如 假设我们有一个产品网格 其中每个产品都有名称 价格和
  • 端点“/api-docs”不适用于自定义 GsonHttpMessageConverter

    我从 Springfox Swagger 迁移到 Springdoc OpenApi 我在有关 springdoc 的配置中添加了几行 springdoc pathsToMatch api api docs path api docs sw
  • 在外部文件中保存Python字典?

    我正在编写的代码本质上是一个超级基本的人工智能系统 基本上是 Cleverbot 的简单 Python 版本 作为代码的一部分 我有一个起始字典 其中有几个键 其中包含列表作为值 文件运行时 字典会被修改 创建键并将项目添加到关联列表中 所
  • 使用 jquery 和 cookie 切换和保留状态

    我有 2 个用 jquery 切换的 div 我希望它们在页面重新加载时具有相同的状态 因此使用 coockie 但无论如何它都会卡在其中一个 div 上 那是因为我似乎无法设置正确的 coockie 怎么了
  • 重命名 Rails 4 应用程序

    我创建了一个 Rails 4 应用程序 但名称已更改 我已经更新了文件夹名称 但我想知道我需要进入并更新哪些文件才能在整个站点中使用这个新名称 或者是否有 Rails 命令可以快速轻松地完成此操作 https github com mors
  • CSS 转换被 JavaScript 阻止

    我正在尝试在veryJavaScript 的密集期 其中构建并填充了一些相当重的 3d 数组 该加载栏需要保持为空 直到用户单击按钮 发生结冰现象是否我在用着 webkit transition 这个应用程序可以是 chrome 独有的 在
  • 关于 requireEnd Matcher 方法的澄清

    直接来自this http docs oracle com javase 7 docs api java util regex Matcher html requireEnd 28 29java API 公共布尔 requireEnd 如果
  • 如何合并字体?

    我有很多字体 OpenSans bold ttf OpenSans boldItalic ttf OpenSans extrabold ttf OpenSans italic ttf OpenSans light ttf 我将如何继续只创建
  • 在RecyclerView顶部设置进度条并在数据加载后删除

    我想要一个加载图标 显示在 RecyclerView 所在位置的顶部 并在数据加载完成后消失 它看起来像 谁能帮我吗 我的代码显示 RecyclerView 上方有一个 TextView 上面写着 正在加载 并在数据加载后消失 但 Recy
  • 在 cURL PHP 中发送请求时出现 401 未经授权的响应

    我正在尝试使用 GitLab API 解决我的 gitlab 项目问题 我已经尝试过 但它似乎不起作用
  • ms Access 从查询中的文件导入表

    有没有办法让 msAccess DB 查询从文件导入表 是的 只要数据被组织起来 您可以将 VBA 或宏与 TransferText 一起使用 也可以使用菜单或功能区中的 获取外部数据 这将指导您完成这些步骤 EDIT 您可以从 CSV 导
  • NSString 到 NSArray

    我想分割一个NSString进入一个NSArray 例如 给定 NSString myString ABCDEF 我想要一个NSArray like NSArray myArray A B C D E F 如何使用 Objective C
  • GWT为移动设备定制CellList多选模型

    我有一个使用 MultiSelectionModel 的应用程序 它工作得很好 但我需要我正在开发的网站才能在移动设备上工作 所以我无法使用键盘来帮助选择元素 因为它不支持 不存在 例如 在桌面上 我只需按住 ctrl 并单击我想要选择的所
  • SQLAlchemy 提交 pickle 类型

    我在 sqlalchemy 中提交对 pickle 类型 列表 的更改时遇到问题 提交后它将表现得好像什么也没发生一样 这是我尝试提交的功能 def commit move game id player move game game que
  • 管理包:PyCharm vs conda vs pip

    我是 Python 新手 最近在 Windows 10 上安装了 PyCharm 2016 3 我还使用 Anaconda 3 我对包管理不太了解 想更好地了解它 通常我只是使用conda update all但我注意到 通过检查本地 Py