【问题标题】:Python pip and conda package managerPython pip 和 conda 包管理器
【发布时间】:2016-07-10 21:40:35
【问题描述】:

是的,我在 python 世界中问同样的老问题。它关于包管理器 pipconda

Pippython 包完美配合,但在带有 c 扩展名的 python 包(如 pandas, matplotlib 等)上会卡住。这就是conda 的用武之地,以节省设置环境的时间。 但是,我偶然发现了一些环境,其中 conda 频道没有 flask-sqlalchemy, flask-httpauth 等软件包。所以你必须使用 pip。用两个不同的包管理器管理你的环境对我来说听起来很奇怪,可能不建议这样做。

使用此类包管理器管理 python 依赖项的最佳实践是什么。需要专家建议来感受一下差距。

任何想法/帮助将不胜感激。

我也使用 Pycharm,它只能识别 conda 包而不是 pip 包。那是另一种痛苦。所以我不得不退回到vim(这很好——我喜欢那个),但是调试很困难或者不像IDE那样容易。

附:我使用 Linux/Mac 进行开发。

【问题讨论】:

  • 仅评论一小部分...确实,一旦您告诉 PyCharm 使用 Conda 解释器,之后用于管理包的 PyCharm GUI 使用 conda。但是,您仍然可以转到终端并使用 pip,只要您按照 Conda 想要的方式使用它即可。

标签: python-3.x pip pycharm anaconda conda


【解决方案1】:

这是一个体面的工作流程示例(来自this blog):

  1. 在我电脑的~/repos/目录下创建一个项目文件夹。
  2. 在目录中创建一个 environment.yml 文件。通常,环境名称将与文件夹名称相同。至少,它 将指定我要使用的 Python 版本;它会经常 包含 anaconda 作为依赖项。
  3. 使用$ conda env create 创建 conda 环境。
  4. 使用 $ source activate ENV_NAME 激活 conda 环境。
  5. 创建一个包含source activate ENV_NAME 行的.env 文件。因为我安装了 autoenv,所以每次我都会运行这个文件 导航到终端中的项目文件夹。因此,我的康达 一旦我导航到该文件夹​​,环境就会被激活。
  6. 运行 $ git init 使文件夹成为 Git 存储库。然后我运行$ git add environment.yml && git commit -m 'initial commit' 来添加 YAML 文件到存储库。
  7. 如果我想将存储库推送到 Github,我使用 $ git create 使用 Github 的集线器命令。然后我用$ git push -u origin master 推送主分支。

它不错,但并不完美。一些缺点是:

  1. 直接依赖关系与依赖关系的依赖关系一起列出。
  2. 正确删除软件包很复杂。
  3. 当从其他来源安装软件包时它不起作用。

但是,这是一个好的开始,根据我的经验,大多数团队都不会费心去发明比这个更好的解决方案。

P.S.:去年,PyCharm 显着改进了对 conda 的支持,截至 2017 年 4 月,它可以正确识别 conda 和 pip 包。

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 2016-04-25
    • 2021-11-10
    • 2020-08-15
    • 1970-01-01
    • 2020-02-15
    • 2014-02-27
    • 1970-01-01
    • 2018-09-28
    相关资源
    最近更新 更多